我想在Matlab中使用for
循环从5个向量组装矩阵。
我怎样才能做到这一点?或者有一个简单的替代方法吗?
这是一个例子:我有5个向量:
A = [1 2 3]
B = [1 2 3]
C = [1 2 3]
D = [1 2 3]
E = [1 2 3]
我想从这些向量中创建一个大小为3 x 5的矩阵Z
。
答案 0 :(得分:1)
for
循环通常是一个坏主意。使用矢量化语法:
Z = [A;B;C;D;E]'; %'// vertical concatenation (5x3), then transpose to get 3x5
>> size(Z)
ans =
3 5
您还可以先转置向量,然后将它们连接起来:
Z = [A' B' C' D' E']; %'// this comment is a syntax highlighting hotfix
>> size(Z)
ans =
3 5
如果你真的坚持使用for
循环,那么你就是这样做的:
Z(3,5) = 0; %// preallocate a 3x5 numerical matrix
for i=1:3
Z(i,1) = A(i);
Z(i,2) = B(i);
Z(i,3) = C(i);
Z(i,4) = D(i);
Z(i,5) = E(i);
end
但这样做完全没有任何意义......