3

Matlabにマトリックスがあります。A=

 1     2     3
 4     5     6
 7     8     9
10    11    12

ここで、Aから派生した新しい行列Bを作成します。新しい行列は次のようになります。B=

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

FORループを使用せずにそれを解決することは可能ですか?

4

2 に答える 2

5

いくつかのインデックス付けで簡単:

A=[1     2     3  ;
   4     5     6  ;
   7     8     9  ;
   10    11    12 ];

B = zeros(2*size(A,2),2);
B(1:2:end,1)=A(1,:); % put first row values in first column of c
B(2:2:end,2)=A(2,:); % put énd row values in 2nd column of c
于 2012-10-03T00:01:35.513 に答える
0

4x4マトリックスのみを使用している場合は、そうです。

4x4を変換し、行x列の規則を使用して、Aの要素に一度に1つずつアクセスできます。A[row][column]

次に、6x2の行列が必要な場合は、ゼロで呼び出すだけです。B = zeros(6,2)

次に、交互に下B[row][column] = A[row][column]に移動すると、簡単に構築できるはずです。

于 2012-10-02T22:09:34.147 に答える