我真的不明白 PDL 的输入功能。就个人而言,我一直在使用 rcols 功能来创建 pdls,正如在网络上的各个地方向我推荐的那样。
我有一个这样的输入文件:
3 -4 -1
0 5 2
3 5 6
2 5 2
5 5 5
5 5 6
其中,我想分配给一个 Piddle。当我将它分配给这样的piddle时,
my @pdls = rcols $in_fh, { COLSEP => "\\s" } ;
my $pdl = pdl(@pdls[1 .. $#pdls]);
当我打印@pdls 时,会打印:
[
[ 3 0 3 2 5 5]
[-4 5 5 5 5 5]
[-1 2 6 2 5 6]
]
这让我觉得它是按列而不是按行来拉我的文件的。真的,看看代码是有道理的。当我将此输出保存到文件时(去掉所有括号后),这就是它的样子。:
3 0 3 2 5 5
-4 5 5 5 5 5
-1 2 6 2 5 6
当我在新的输入文件上运行相同的脚本时,结果与以前的过程不同:
[
[ 0 -4 -1]
[ 3 0 0]
[ 0 5 2]
[ 0 0 0]
[ 0 5 6]
[ 3 0 0]
[ 0 5 2]
[ 2 0 0]
[ 0 5 5]
[ 5 0 0]
[ 0 5 6]
[ 5 0 0]
]
我不知道它为什么这样做。本质上,我希望能够将我的文本文件读入一个 piddle。有没有人看到我错过了什么,或者能够提供任何解释?
谢谢你的帮助。