如何在MATLAB中使用for循环将向量组装成矩阵

时间:2014-02-04 09:15:47

标签: arrays matlab vector matrix

我想在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

1 个答案:

答案 0 :(得分:1)

在Matlab中,

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

但这样做完全没有任何意义......