www.5129.net > mAtlAB按大小排序sort

mAtlAB按大小排序sort

比如对矩阵a的每一行进行排列,排列的指标是第一列数的大小.那么从小到大进行排列:12[~,i]=sort(a(:,1));a=a(i,:);这样就把a的每一行重新排列了一下(按照第一列从小到大).如果要从大到小,那么也很简单.12[~,i]=sort(-a(:,1));a=a(i,:);

当A为向量时:sort(A)实现从小到大排序;sort(A,'descend')实现从大到小排序;sort(A,'ascending')实现从小到大排序;当A为矩阵时:sort(A)实现按列从小到大排序;sort(A,'descend')同理.sort(A,'ascending')同理.sort(A,2)实现按行从小到大排序;sort(A,2,'descend')同理.用[x,y]=sort(A)可以把A按从小到大排序 并给出在A中相应的下标(y中记录的是下标) 你想要几个最大的数,就从后往前取几个y的值就可以了 或者用x,y]=sort(A,'descend')从大到小排序 输出前面的值就可以了

function B=sorting_pup(A) n = length(A); for i = 1:n-1 for j = i+1:n if A(i)>A(j) temp = A(i); A(i) = A(j); A(j) = temp; end end end B = A;

可以用sortrows函数,代码如下:a=rand(3);b=sum(a,2);c=[a,b];d=sortrows(c,4);e=d(:,1:3) b矩阵为按行求和的结果,c将a和b合并,d是按第4列排序,即按和的大小,e是将排序后的a去出来.运行效果:a =0.9649 0.9572 0.14190.1576 0.4854

不会那个函数就自己编了,下面是我编的,输入多少个数都能从大到小排 function y=paixu(a) n=length(a); for i=1:n-1 for j=i+1:n if a(i)<a(j) temp=a(i); a(i)=a(j); a(j)=temp; end end end y=a; 关闭并保存为paixu.m 输入 a=[3,6,8,3,86,5,43,657,9]; b=paixu(a); b 得结果 b = 657 86 43 9 8 6 5 3 3 希望有用..

%%%%%% 用途之一,将坐标按X值排序,对应Y值不变 s = rand(2,10); x = s(1,:); [x,r] = sort(x); %%%% 将X排序 y = s(2,:); y = y(r); %%%% 得到对应的y,要显示的话,,输入变量名,回车,,则显示变量数值.

Matlab 中自带排序函数sort A=randn(1,10); sort(A,'descend') %递减排序 sort(A) %默认递增排序,也可以写成sort(A,'ascend')

matlab对数组排序用sort命令,如:a=randi(50,1,20),b=sort(a)结果是:a =12 38 13 26 35 45 48 28 7 8 13 43 13 41 13 47 18 10 13 31b =7 8 10 12 13 13 13 13 13 18 26 28 31 35 38 41 43 45 47 48

function [pos,row] =find_matrix(a);handle =fopen('pos.txt','w');dim =size(a);C =reshape(a,1,[]);row =sort(C,'descend');fprintf(handle,'After sort : %g \r\n\r\n',row);for index =1:length(C) pos = find(a==C(index)); if mod(pos,dim(1))==0 rowtp =dim(1);

A是要排序的矩阵,1是维度,就是说是按列排序还是按行排序,1是按列排序,'descend'是降序排列.看下帮助文档就知道了

网站地图

All rights reserved Powered by www.5129.net

copyright ©right 2010-2021。
www.5129.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com