matlab 如何筛选一组数中重复的数

最好能显示出这些数字的位置以及重复的次数

a=randint(4,10,[120]);

u=unique(a);

m=size(u,1);

id=1;

fork=1:m

[ia,ib,ic]=find(u(k)==a);

ifsum(ic)>1

R{id,1}=u(k);

R{id,2}=[iaib];

R{id,3}=sum(ic);

id=id+1;

end;

end;

强大处理

MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而且经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。

以上内容参考:百度百科-MATLAB

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-14

例如:

x =

     2     2     6     5
     2     3     2     4
     3     4     3     4
     4     4     4     5

第一步:找到唯一的.

X=unique(x);

X =

     2
     3
     4
     5
     6

第二步:查找相应位置

for i=1:length(X)

     [m n]=find(x==X(i));

     if length(m)>=2

disp(strcat(num2str(X(i)),'重复',num2str(length(m)),'次','位置为:' ,mat2str([m n])))

   end

end

结果如下:

本回答被提问者采纳
第2个回答  推荐于2017-12-15
a = randint(4,10,[1 20]);
u = unique(a);
m = size(u,1);
id = 1;
for k = 1:m
[ia,ib,ic] = find(u(k)==a);
if sum(ic)>1
R{id,1} = u(k);
R{id,2} = [ia ib];
R{id,3} = sum(ic);
id = id+1;
end;
end;
R本回答被网友采纳
相似回答