3

私はこのようなデータマトリックスを持っています:

A=[ 5   0   10  15  0.021;
    5   0   15  20  0.011;
    10  15  5   0   0.022;
    15  20  5   0   0.009]

各行を他のすべての行と比較する必要があります。基準は次のとおりです。この行の1列目と2列目が2行目の3列目と4列目と同じであり、この行の3列目と4列目が他の行の1列目と2列目と同じである場合行、これら2つの行のインデックスが必要です。

例えば:

A = [5  0 10 15  *;
     *  *  *  *  *;
     10 15 5  0  *;
     *  *  *  *  *];

ご覧のように:

  • 行1の1番目と2番目の要素は、行3の3番目と4番目に等しい
  • 行1の3番目と4番目の要素は、行3の1番目と2番目に等しい

行列の順序を変更したくありません。

4

1 に答える 1

1

ismemberはそれを行うことができます:

[~,b]=ismember(A(:,1:4),A(:,[3 4 1 2]),'rows');
ind = find(b);
ind(:,2) = b(ind(:,1));

ind冗長なエントリ([1 2]および[2 1])が含まれます。基準は対称であるため、次を使用してそれらをフィルタリングできます。

ind = unique(sort(ind,2),'rows')
于 2012-10-30T19:47:22.153 に答える