一个关于矩阵中元素排序的matlab编程问题,希望能有高手帮忙。很着急。

救我... 救我 展开
 我来答
百度网友b902e1265
2012-04-30 · TA获得超过196个赞
知道答主
回答量:141
采纳率:100%
帮助的人:106万
展开全部
a=[6 2 3 2;9 8 3 1;0 7 6 4;2 3 5 7];%原矩阵a
b=zeros(size(a));%b为中间矩阵,大小与a相同
c=[1;4;3;2];%新的排列顺序
%b(1,:)=a(c(1),:);b(2,:)=a(4,:);b(3,:)=a(2,:);b(4,:)=a(3,:);]
for i=1:size(c)
b(i,:)=a(c(i),:);
end
a=b
追问
还有一个问题,想请你看看:

有一个一维矩阵a=[1,2...,102]

其中第2列到第101列是随机生成的,是2->101之间的不重复的整数。

现在我想要实现将a中的所有大小属于[50,70]之间的元素按照从小到大的顺序排列

其它的不变。不知道如何实现啊?matlab程序。谢谢
追答
clear
clc
a=1:102;%这里的a是我随便取的,你改成题目中的a
c=zeros(1,21);%c的大小为21,因为c要存储50到70之间的共21个数在a中的顺序
d=c;%d要存储在a中的50-70的数字(其实没必要,因为题中50-70的数字必出现且只出现一次)
j=1;
for i=1:102
if a(i)>=50&a(i)<=70
c(j)=i;%取出50-70之间数字的位置
d(j)=a(i);%取出50-70之间的数字,
j=j+1;
end
end
sort(d,1);%sort用法自己百度,其实在本题中不需要排序,直接按照50--70的顺序就好了
for k=1:21
a(c(k))=d(k);%将50-70送入a中,顺序在c中
end
a
%程序我运行了,应该没问题,你再看看
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式