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 的元素A[row][column]

然后你想要一个 6x2 矩阵然后你只需用零调用它B = zeros(6,2)

然后交替向下B[row][column] = A[row][column],您应该能够轻松构建它。

于 2012-10-02T22:09:34.147 回答