matlab中统计向量中有几个相同的数

比如有一行很长的向量,需要统计其中相同的数,并且返回相同数的行数,如A=[1 2 2 4 4 4 6 7 7 7 7 8 8 10 10 10 ...] 我想知道哪些列的数字是一样的,怎么做?

%********主程序文件****
clear all
clc
A=[1 2 2 4 4 4 6 7 7 7 7 8 8 10 10 10];
%A(2,:)=[2 3 3 4 5 6 1 0 10 1 3 3 4 4 3 4];
A1=unique(A); % 合并A中相同数据
Len=length(A1(:)); %统计A1中元素个数
B=cell(2,Len); %创建2*Len元胞数组
for ni=1:Len
B{1,ni}=A1(ni); %元胞数组中第一行存放要统计的数
B{2,ni}=Same_num(A,A1(ni)); %元胞数组中第二行存放对应数的索引位置
end

%*****以下函数文件单独保存在名为Same_num的函数m文件中*****************************************
function B=Same_num(A,num)
%统计矩阵A中数num的个数及其位置索引
%A为待统计矩阵
%num为A中的某一个数
LenA1=size(A,1); %统计A的行数
LenA2=size(A,2); %统计A的列数
m=1; %初始化
for ni=1:LenA1
for nj=1:LenA2
if A(ni,nj)==num
B(m,:)=[ni,nj]; %将与num相同的数的索引返回
m=m+1;
end
end
end
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-04-16
程序如下:
Au=unique(A);% 合并A中相同数据的集合,A=[1 2 4 6 7 8 10…]
n=size(Au,2);% 统计Au中元素的个数
for i=1:n
M=find(A==Au(i));% 在数组A中,找到和Au(i)相同的数的行数和列数
%=================================
% 显示说明信息部分
disp('和数')
Ae=Au(i)
disp('相同的数的列数为:')
%=================================
col=M(:,2)'% 显示列数
end

希望对你有帮助!如有小错误,自行调整!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网