matlab中,比如有个矩阵A=[1 1 3 3 3 5 5 9 9 9 9 9; 4 5 6 7 1 2 3 4 5 8 9 1]

2024-11-17 02:43:24
推荐回答(2个)
回答(1):

下面这段程序我反复试了几次,生怕还有什么错误,你所给的矩阵我略微改动了一下,这样的矩阵A更具有代表性,有疑问的话可在向我提问,你可以直接把下面的程序粘贴到M文件窗口中,然后运行
A=[1 1 3 3 3 5 5 9 9 3 9 9; 4 5 6 7 1 2 3 4 5 8 9 1];%给出矩阵A
count=1;%每次找到相同的元素时用来计算相同的元素的个数
column=1;
%下面程序中的矩阵C用来提取你所想要的元素(第一行元素相同时就提取),column用来
%表示C的列
i=1;
for k=i+1:size(A,2)%size(A,2)给出矩阵A的列数为多少
if(A(1,k)==A(1,i))
count=count+1;
else
if(count>1)
C(:,column)=A(:,i);
column=column+1;
count=1;%重新设定count的值,以便于寻找下一个相同元素
end
i=k;%重新设定i的值,以便于寻找下一个相同元素
end
end
%下面这段程序用来测试矩阵第一行的最后几个元素是否是相同的,若它们是相同的,
%则将相应的元素提取出来
if(count>1)
C(:,column)=A(:,i);
end
C %输出从A中按指定条件提取出来的元素

回答(2):

A=;
m=A(1,1);
for i=2:size(A,2)
if(A(1,i)==m)
else
C=[m;A(2,i)];
B=[B;C];
m=A(1,i);
end
end