移动矩阵行

时间:2015-04-06 00:33:26

标签: matlab matrix

我有这样的矩阵,我想在Matrix

之间移动一些行
Matrix = 
[ 1   101   201   301
  2   102   202   302
  3   103   203   303
  4   104   204   304
  5   105   205   305
  6   106   206   306
  7   107   207   307
  8   108   208   308
  9   109   209   309
  10   110   210   310];

例如,我想在第2行之后移动第6行

Matrix = 
         [ 1   101   201   301
           2   102   202   302
           6   106   206   306
           3   103   203   303
           4   104   204   304
           5   105   205   305
           7   107   207   307
           8   108   208   308
           9   109   209   309
           10   110   210   310];

然后我想在第5行之后移动第9行

 Matrix = 
         [ 1   101   201   301
           2   102   202   302
           6   106   206   306
           3   103   203   303
           4   104   204   304
           5   105   205   305
           9   109   209   309
           7   107   207   307
           8   108   208   308
           10   110   210   310];  

如何在Matlab中完成此任务?

1 个答案:

答案 0 :(得分:3)

只需索引:

Matrix = ...
[ 1   101   201   301
  2   102   202   302
  3   103   203   303
  4   104   204   304
  5   105   205   305
  6   106   206   306
  7   107   207   307
  8   108   208   308
  9   109   209   309
  10   110   210   310];

newOrder = [1 2 6 3 4 5 9 7 8 10];
out = Matrix(newOrder,:)

out =

     1   101   201   301
     2   102   202   302
     6   106   206   306
     3   103   203   303
     4   104   204   304
     5   105   205   305
     9   109   209   309
     7   107   207   307
     8   108   208   308
    10   110   210   310