我有一个单元格数组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;]
如何在2列[第3列和第4列]上应用unique
函数,以便它们返回值“3”和“2”。 [由于4,5对有3个重复,对2,6对重复2个。]
非常感谢任何提示。
答案 0 :(得分:1)
您可以使用:
[B,I,J] = unique(a{1}(:,[3,4]),'rows');
N = hist(J,numel(unique(J)));
N(N~=1)
这会给你:
ans =
2 3
答案 1 :(得分: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
:
以第一行为例。第一列将包含该元素。第二列将包含在该特定列中发生的次数。请注意,不会显示单次出现。
对于第4列,这是desiredMat
的外观:
desiredMat =
5 3
6 2