matlab cell数组中判断元素是否重复,并统计重复元素个数?

present1是一个1*10的元胞数组,数组中的每一个元素是一个二维坐标矩阵,如何检测present1数组里重复元素的个数,并计数?
在下图中,present1数组的第8列和第9列就重复了,如何判断并计数?

我稍作修改,假设是有三列相同的,3,8,9
p{1,1}=[9 7];p{1,2}=[5 3];p{1,3}=[9 8];p{1,4}=[3 1];p{1,5}=[2 3];
p{1,6}=[2 7];p{1,7}=[9 9];p{1,8}=[9 8];p{1,9}=[9 8];p{1,10}=[3 10];
n=0;
for k=1:length(p)-1
for h=k+1:length(p)
if isequal(p{1,k},p{1,h})==1
n=n+1;
formatSpec = '相同列数:第%d 列 和第 %d 列\n';
fprintf(formatSpec,k,h)
end
end
end
fprintf('共有相同列数: %d\n',n');

相同列数:第3 列 和第 8 列
相同列数:第3 列 和第 9 列
相同列数:第8 列 和第 9 列
共有相同列数: 3追问

试了下 算法不错 但是我最终想得到的是一行数组E,记录元素出现的次数。
比如针对上面的结果,数组E=(1 1 3 1 1 1 1 0 0 1) 如何操作,求指教。

追答

满意请采纳,追问请加分!正在思考中...

追问

恩 放心 会的

追答

如果不考虑上面的情况,只求E的话,可以用另外一种简单的方法
A=cell2mat(p');
[C,ia,ic]=unique(A,'rows');
E=zeros(1,10);
for i=1:max(ic)
a=find(ic==i);
E(min(a))=length(a);
end
即可求得E的矩阵
>> E

E =

1 1 3 1 1 1 1 0 0 1

追问

很不错 有联系方式吗?以后可以请教了~

温馨提示:答案为网友推荐,仅供参考
相似回答