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在 2 列 [第 3 列和第 4 列] 上应用该函数,以便它们返回值“3”和“2”。[因为 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

以第一行为例。第一列将包含该元素。第二列将包含它在该特定列中出现的次数。请注意,不会显示单个事件。

第 4 列的desiredMat外观如下:

desiredMat =

     5     3
     6     2
于 2013-04-08T04:09:16.050 回答