我有一个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循环来解决这个问题?
通过一些索引可以轻松实现:
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
如果你只使用4x4矩阵,那么是的。
你想要转换一个4x4矩阵,并且使用行x列约定,你可以像这样逐个访问A的元素A[row][column]
然后你想要一个6x2矩阵,那么你只需要用零来调用它B = zeros(6,2)
然后交替向下B[row][column] = A[row][column]
,你应该能够轻松地构建出它。