0

我有一个矩阵

A = 1   1   1
    2   2   2
    3   3   3
    4   4   4 
    5   5   5

我有 3 个数组,其中包含我要分别对各个列进行排序的顺序。示例 I1 用于第 1 列,I2 用于第 2 列,...。

I1 = 5   I2 = 4   I3 = 3
     4        3        2 
     3        2        1
     2        1        5
     1        5        4

排序后的矩阵 AI 应该得到:- 如果只使用 I1 对第一列进行排序

A = 5   1   1
    4   2   2
    3   3   3
    2   4   4 
    1   5   5

如果只使用 I2 对第 2 列进行排序

A = 1   4   1
    2   3   2
    3   2   3
    4   1   4 
    5   5   5

如果只使用 I3 对第 3 列进行排序

A = 1   1   3
    2   2   2
    3   3   1
    4   4   5 
    5   5   4

如果仅使用 I1,I2,I3 对所有列进行排序

A = 5   4   3
    4   3   2
    3   2   1
    2   1   5 
    1   5   4

请建议我该怎么做。

4

1 回答 1

2

如果它们的尺寸都相同,这应该是您需要的:

A([I1 I2 I3]);

如果您希望单独对列进行排序,可以使用以下语法:

A(:,2)=A(I2,2);

或者例如第 2 列和第 3 列:

A(:,[2 3]) = [A(I2,2) A(I3,3)];
于 2013-07-11T14:56:42.120 回答