matlab从大到小排序的语句,从小到大排序的方法

该博客介绍了如何在MATLAB中对矩阵的三列数据分别进行从大到小的排序。首先,通过sort()函数对每一列进行从小到大的排序,然后利用fliplr()函数翻转排序结果,实现从大到小的排列。最后,通过循环遍历原矩阵,用排序后的序号替换原数据,完成整个矩阵的排序过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

%N的求解

%注意:从小到大排序的方法:sort()函数与fliplr()函数的结合使用。

clc

clear

%--------------A为cheng_xu的X-----------------------------

A=[82,77.9000000000000,0.200425033061791;

74.2000000000000,75.8000000000000,0.188126683675250;

78.2000000000000,75.6000000000000,0.192806361387551;

79.4000000000000,76.9000000000000,0.195943296778620;

71,81.5000000000000,0.191442498644144;

68.4000000000000,75.5000000000000,0.180589320900021;

77.5000000000000,74.2000000000000,0.190158814088605;

71.4000000000000,72.3000000000000,0.180212499893066;

72.9000000000000,80.4000000000000,0.192384685823835;

74.3000000000000,79.8000000000000,0.193347200228280;

72.3000000000000,71.4000000000000,0.180175910888510;

63.3000000000000,72.4000000000000,0.170347494596538;

65.9000000000000,73.9000000000000,0.175466375025804;

72,77.1000000000000,0.187069264001191;

72.4000000000000,78.4000000000000,0.189219292318112;

74,67.3000000000000,0.177048506423094;

78.8000000000000,80.3000000000000,0.199535696666457;

73.1000000000000,76.7000000000000,0.187916545911268;

72.2000000000000,76.4000000000000,0.186423988965194;

77.8000000000000,76.6000000000000,0.193587196142667;

76.4000000000000,79.2000000000000,0.195173258322604;

71,79.4000000000000,0.188766493230544;

75.9000000000000,77.4000000000000,0.192262722475318;

73.3000000000000,76.1000000000000,0.187398699704490;

77.1000000000000,79.5000000000000,0.196419088500140;

81.3000000000000,74.3000000000000,0.194974051520026;

64.8000000000000,77,0.178059671504641;

81.3000000000000,79.6000000000000,0.201727779468635];

A1=A(:,1)';  %提取第一列数据

A2= sort(A1);   %第一列数据升序排列

A2=fliplr(A2);  %颠倒位置,得到 由大到小排列

n=length(A2);

for i=1:n   %循环的作用:将原矩阵所在位置的数值,用排序后,该数值所对应的

for j=1:n            %      序号代替(下同)。

if A1(1,j)==A2(i)

A1(1,j)=i;

break;

end

end

end

A1_new=A1; %完成更替。

A1=A(:,2)';  %提取第二列数据

A2= sort(A1);   %第二列数据升序排列

A2=fliplr(A2);  %颠倒位置,得到由大到小排列

n=length(A2);

for i=1:n

for j=1:n

if A1(1,j)==A2(i)

A1(1,j)=i;

break;

end

end

end

A1_2_new=A1; %完成更替。

A1=A(:,3)';  %提取第三列数据

A2= sort(A1);   %第三列数据升序排列

A2=fliplr(A2);  %颠倒位置,得到由大到小排列

n=length(A2);

for i=1:n

for j=1:n

if A1(1,j)==A2(i)

A1(1,j)=i;

break;

end

end

end

A1_3_new=A1; %完成更替。

N=[A1_new',A1_2_new',A1_3_new'];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值