1

a次のような内容のセル配列 があります。

a{1}=[1 3 4 5;
      3 3 4 5;
      5 5 4 5;
      2 4 2 6;
      6 5 2 6;
      7 2 3 1;]

unique値「3」と「2」を返すように、2 つの列 [列 3 と 4] に関数を適用するにはどうすればよいですか。[ペア 4,5 には 3 つの重複があり、ペア 2,6 には 2 つの重複があるため.]

どんなヒントでも大歓迎です。

4

2 に答える 2

1

あなたが使用することができます:

[B,I,J] = unique(a{1}(:,[3,4]),'rows');
N = hist(J,numel(unique(J)));
N(N~=1)

これにより、次のことが得られます。

ans =

     2     3
于 2013-04-08T04:08:58.587 に答える
0

次のように実行できます。

desiredCol=3;
B=unique(a{1}(:,desiredCol));
count=histc(a{1}(:,desiredCol),B);
desiredMat(:,2)= count(count~=1);
multipleOccElm= (count~=1).*B;
desiredMat(:,1)=multipleOccElm(multipleOccElm~=0);

これはあなたが解釈する方法ですdesiredMat

たとえば、最初の行を見てみましょう。最初の列には要素が含まれます。2 番目の列には、その特定の列で発生した回数が含まれます。単一のオカレンスは表示されないことに注意してください。

4 列目は次のようになりdesiredMatます。

desiredMat =

     5     3
     6     2
于 2013-04-08T04:09:16.050 に答える