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]

我想提取第一行相同元素素所对应的第二行值,也就是(1,4)(3,6)(5,2)(9,4),该怎么编写程序?也就是得到矩阵[1359;4624]... 我想提取第一行相同元素素所对应的第二行值,也就是(1,4)(3,6)(5,2)(9,4),该怎么编写程序?也就是得到矩阵[1 3 5 9;
4 6 2 4]
展开
 我来答
Foolgend
2011-12-13 · TA获得超过320个赞
知道答主
回答量:18
采纳率:0%
帮助的人:19.3万
展开全部
下面这段程序我反复试了几次,生怕还有什么错误,你所给的矩阵我略微改动了一下,这样的矩阵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中按指定条件提取出来的元素
百度网友d580670
2011-12-13 · TA获得超过1983个赞
知道大有可为答主
回答量:2054
采纳率:82%
帮助的人:704万
展开全部
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
追问
请问能解释下不?
追答
奥,按照你的意思是取第一行重复的数第一个所对应第一行第二行放到需要的矩阵里面
按照意思写下就成上面的样子,取出第一行的一个数判断是不是和前面的相等不等的话将对应位置的第一行第二行的数值取出存放
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式