PDLマトリックスを作成しました。各行をペアごとに比較する必要があります。現在、「where」および「cov」コマンドを使用して、2つのスライス(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行)の比較を行う必要があります。