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 つの重複があるため.]
どんなヒントでも大歓迎です。
あなたが使用することができます:
[B,I,J] = unique(a{1}(:,[3,4]),'rows');
N = hist(J,numel(unique(J)));
N(N~=1)
これにより、次のことが得られます。
ans =
2 3
次のように実行できます。
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