在MATLAB中对矩阵排序时如何维护行?
我有一个2乘3的矩阵,我想根据第一列对它进行排序。下面是一个例子:在MATLAB中对矩阵排序时如何维护行?,matlab,sorting,matrix,Matlab,Sorting,Matrix,我有一个2乘3的矩阵,我想根据第一列对它进行排序。下面是一个例子: data will change to --> new data 11 33 10 22 22 44 11 33 10 22 22 44 我有一个用于排序矩阵a的代码,但它工作不好: sort(A,1,'ascend'); 该函数可以为您处理以下问题: B = sortrows(A);
data will change to --> new data
11 33 10 22
22 44 11 33
10 22 22 44
我有一个用于排序矩阵a
的代码,但它工作不好:
sort(A,1,'ascend');
该函数可以为您处理以下问题:
B = sortrows(A);
正如@gnovice所建议的,这是最好的解决方案。您还可以为和命令指定多个输出,这将返回排序索引。您也可以使用它来修改其他列,或者只是跟踪排列。例如:
A=rand(10,2);
[B, idx]=sortrows(A);
如何将排序后的数据保存回同一个txt文件?@Jessy:要将排序后的数据写入文件,可以使用FPRINTF()。这里有一个例子:
fid=fopen('newdata1.txt','w');fprintf(fid,'%f%f\n',B.);fclose(fid)
gnovice@Thank..我有问题,它没有打印在txt文件中,正如B=sortrows(A)@Jessy:两种可能的解决方案:1)在写出来之前,请确保将B
与'
进行转换。2) FPRINTF的格式字符串中可能必须有\r\n
而不是\n
。虽然它没有显示在相关的侧栏上,但我发现了一个非常旧的副本:。我将尝试重新标记这两个,以便它们更有可能出现在搜索中。