猿问

请问matlab该如何用sort函数实现sortrows的功能?

matlab 如何用sort函数实现sortrows的功能


慕标5832272
浏览 515回答 5
5回答

慕桂英3389331

a=rand(100,100); tic [b,pos]=sort(a(:,1)); aa=a(pos,:); toc tic A=sortrows(a,1); toc det(aa-A) 前面的算法时间要短,效果是一样的 Elapsed time is 0.000110 seconds. Elapsed time is 0.000259 seconds. ans = 0 用个小矩阵检测下 a=magic(5); tic [b,pos]=sort(a(:,1)); aa=a(pos,:) toc tic A=sortrows(a,1) toc det(aa-A) a = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 aa = 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 17 24 1 8 15 23 5 7 14 16 Elapsed time is 0.000133 seconds. A = 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 17 24 1 8 15 23 5 7 14 16 Elapsed time is 0.000223 seconds. ans = 0

狐的传说

以下是自己按照程序帮助写的,没有copy,希望能帮助到你。sortrows有三种用法:B = sortrows(A)B = sortrows(A,column)[B,index] = sortrows(A,...)我们先创建一个矩阵A=floor(gallery('uniformdata',[6 7],0)*100);A(1:4,1)=95; A(5:6,1)=76; A(2:4,2)=7; A(3,3)=73A =95 45 92 41 13 1 8495 7 73 89 20 74 5295 7 73 5 19 44 2095 7 40 35 60 93 6776 61 93 81 27 46 8376 79 91 0 19 41 1默认依据第一列的数值按升序移动每一行,如果第一列的数值有相同的,依次往右比较。例:B = sortrows(A)B =76 61 93 81 27 46 8376 79 91 0 19 41 195 7 40 35 60 93 6795 7 73 5 19 44 2095 7 73 89 20 74 5295 45 92 41 13 1 84或是从某一列开始比较数值并按升序排序,例:C = sortrows(A,2)C =95 7 73 89 20 74 5295 7 73 5 19 44 2095 7 40 35 60 93 6795 45 92 41 13 1 8476 61 93 81 27 46 8376 79 91 0 19 41 1亦可以从某一列开始以降序排列,例:D = sortrows(A, -4)D =95 7 73 89 20 74 5276 61 93 81 27 46 8395 45 92 41 13 1 8495 7 40 35 60 93 6795 7 73 5 19 44 2076 79 91 0 19 41 1如果要求每一列都按照升序排列E=sort(A)如果要求每一列都按照降序排列F=-sort(-A)

翻过高山走不出你

SORTROWS Sort rows in ascending order.它是按照行来做排序的C =2 22 1就会变成C =2 12 2它是把每一行当成一个数譬如0.4447 0.9218 0.40570.6154 0.7382 0.93550.7919 0.1763 0.9169如果用sortrows排的话,它会把这个看成444792184057615473829355791917639169每一行中的一列相当于数的一位, 前面的权重大如果需要每列升序排列,直接用sort即可

慕斯709654

先用for循环把矩阵的每一行提取出来成为一个单独的行向量,对提取出来的行向量进行求和,比较和值大小,然后根据和的大小从上到下依次将单独的行向量排列下去(还得用个for语句),构成一个新的矩阵,这个矩阵就是你所要求的了

不负相思意

sortrows的第二个参数可以指定按哪一列排序。1234567SORTROWS(X,COL) sorts the matrix based on the columns specified in the    vector COL.  If an element of COL is positive, the corresponding column    in X will be sorted in ascending order; if an element of COL is negative,    the corresponding column in X will be sorted in descending order. For     example, SORTROWS(X,[2 -3]) sorts the rows of X first in ascending order     for the second column, and then by descending order for the third    column.所以,对应的代码是:1sortrows(A, 1)
随时随地看视频慕课网APP

相关分类

Python
我要回答