1

matlab で行を並べ替えるという特定の問題があります。これは私のエントリーマトリックスの例です:

 A =

 [0 1 1;
  0 1 2;
  1 0 3;
  1 0 4;
  1 1 5;
  0 1 6;]

これが「ソートベクトル」です

 V=

  1 
  4 
  6 
  2 
  3 
  5 

このような出力行列を取得する方法:

B=

 [0 1 1;
  1 0 4;
  0 1 6;
  0 1 2;
  1 0 3;
  1 1 5]

?

最初に、ベクトル V を行列 A (最後の列) に追加しましたが、次のステップでどのように見えるかわかりません。私は立ち往生しています。

事前に、あなたの時間と助けに感謝します:)

4

2 に答える 2

3

これが答えかもしれません:

B = A(V(:),:);

于 2013-05-16T23:25:17.317 に答える
3

必要な行を再配置または選択するには:

B = A(V,:);

同じ概念を列に使用したり、必要な行または列を再配置、選択、または繰り返したりするために使用できます。

V2 = [3 1 3];
B2 = A(:,V2);

B2 = 

 1     0     1
 2     0     2
 3     1     3
 4     1     4
 5     1     5
 6     0     6

コロン演算子 (:) については、こちらをご覧ください。

http://www.mathworks.com/help/matlab/ref/colon.html

于 2013-05-16T23:40:51.873 に答える