我已经创建了一个PDL矩阵。我需要在每一行之间进行两两比较。目前,我正在使用'where'和'cov'命令来返回两个片的成对比较(在perl循环中生成)。PDL成对排比较
我的问题:如何使用'范围'和'切片'以成对的方式循环行?我怎样才能返回我的指数头寸?我用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.
}
我只是需要一种方法来在所有行上执行pairwise。我需要做阶乘(n行)比较。
无奈之举......我正在写一个perl循环,但是很遗憾。 – 2011-12-22 16:25:33
我不太清楚你在找什么。你能举出一个更具体的你使用的数据的例子吗? – 2012-02-13 20:07:16