【问题标题】:how to assemble vectors into matrix using for loop in MATLAB如何在MATLAB中使用for循环将向量组装成矩阵
【发布时间】:2014-02-04 09:15:46
【问题描述】:

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

【问题讨论】:

  • 就目前而言,您的问题毫无意义。请添加很多更多细节
  • 好的。我有 5 个向量 A = [ 1 2 3] B = [ 1 2 3] C = [ 1 2 3] D = [ 1 2 3] E = [ 1 2 3] 我想从中创建一个矩阵“Z”大小为 3 x 5 的向量。如何使用 for 循环来实现?
  • “组装”是什么意思?这不是定义的操作。您在寻找vcat 还是hcat
  • 组装,我的意思是制定一个矩阵,矩阵应该从向量中取值。
  • @user3270090 Google 在 Matlab 中连接矩阵。

标签: arrays matlab vector matrix


【解决方案1】:

for 循环在 Matlab 中通常是一个坏主意。使用矢量化语法:

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

但是这样做真的没有任何意义......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多