我创建了一个 PDL 矩阵。我需要在每一行之间进行成对比较。目前我正在使用“where”和“cov”命令返回两个切片的成对比较(在 perl 循环中生成)。
我的问题:如何使用“范围”和“切片”以成对的方式遍历行?如何返回我的索引位置?我已经使用 perl 遍历了矩阵。我读过用 perl 循环真的削弱了 PDL 的力量。
期望的输出:
indexA indexB Value
pos1 pos5 1
pos1 pos6 5
pos1 pos0 7
需要明确的是,我只想使用 PDL 功能。
这是一些伪代码(希望)可以更好地说明我的观点。
p $b
[
[1 0 3 0]
[0 1 0 1]
[1 3 1 3] <- example piddle y
[0 1 0 1] <- example piddle z
]
my concept function{
slice $b (grab row z) - works fine
slice $b (grab row y) - works fine
($a, $b) = where($a,$b, $a < 3 && $b < 3 ) - works fine
p $a [1 1]
p $b [0 0]
cov($a $b) - works just fine.
}
我只需要一种在所有行中成对执行的方法。我需要进行阶乘(n 行)比较。