You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab中如何按指定行对矩阵列进行排序?

按指定行对MATLAB矩阵列排序的方法

当然有啦!在MATLAB里实现这个需求超级简单,核心就是用sort函数获取指定行的排序索引,再用这个索引重排列矩阵的列就行。我结合你的例子给你演示:

步骤1:定义原矩阵

先把你给出的矩阵赋值:

A = [1 3 4; 1 0 5; 3 2 1];

步骤2:获取指定行的排序索引

你需要按最后一行排序,所以我们提取最后一行,用sort函数的第二个输出参数拿到排序后的元素在原行中的位置(也就是列的索引):

[~, sort_idx] = sort(A(end, :)); % 用~忽略排序后的数值,只取索引;end代表最后一行

这里sort_idx的结果是[3,2,1],意思是原矩阵的第3列、第2列、第1列按最后一行的升序排列。

步骤3:用索引重排列矩阵

直接用这个索引对原矩阵的列进行重新排列:

sorted_matrix = A(:, sort_idx);

运行这段代码后,得到的sorted_matrix就是你想要的结果:

4 3 1
5 0 1
1 2 3

额外小技巧

  • 如果想要降序排序,只需要给sort加一个'descend'参数:
    [~, sort_idx_desc] = sort(A(end, :), 'descend');
    sorted_matrix_desc = A(:, sort_idx_desc);
    
  • 如果要按其他行排序,比如第2行,只需要把A(end, :)换成A(2, :)就行,非常灵活!

内容的提问来源于stack exchange,提问作者Jorge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 07:02:40