如何在matlab中将矩阵中的多列移动到最右边

时间:2015-01-13 19:33:49

标签: matlab matrix

假设我有一个mxn矩阵A.假设我有一个i元素的列表(或向量)P,其中P的每个元素表示A中列的编号。我需要将P指示的所有列移动到A的最右边;例如,第一个中指示的列和P中的第i个元素将分别成为A的第(n-i)个和第n列。

希望我的发言很清楚,如果有任何含糊之处,请告诉我。 谢谢。

1 个答案:

答案 0 :(得分:1)

要使列3,5,7向右,首先构造c,表示列的新顺序。然后使用c对列进行索引,然后对其进行重新排序。

>> M=magic(10);
>> c=[3,5,7];
>> c=[setdiff(1:size(M,2),c),c]

c =

  Columns 1 through 9

     1     2     4     6     8     9    10     3     5

  Column 10

     7

>> M=M(:,c);