如何使用特定列对特定行集进行排序?

时间:2017-06-30 12:47:55

标签: matlab sorting

在Matlab中,我想用列2排序矩阵A的前3行,然后排序3行,而不用第2列再次更改前三行。 例如对于矩阵是

A = [1 6 50;
     5 2 50;
     7 1 50;
     2 5 53;
     5 1 53;
     7 3 53]

我想要

B = [7 1 50;
     5 2 50;
     1 6 50;
     5 1 53;
     7 3 53;
     2 5 53;]

后来,使用相同的逻辑,我想对100行的矩阵进行排序。

1 个答案:

答案 0 :(得分:2)

您可以通过将sortrows方法与子矩阵操作结合使用来完成此操作:

A(1:3,:) = sortrows(A(1:3,:), 2)
A(4:6,:) = sortrows(A(4:6,:), 2)
...

如果矩阵较大,可以使用简单的for循环来完成:

for i = 1:3:100
    A(i:i+2,:) = sortrows(A(i:i+2,:), 2)
end