如何从for循环matlab存储一系列向量

我有一个生成向量的for循环。我想将这些向量存储在矩阵中。通常我会这样做:

for r=1:100

   vec=[x:y]+r;

   mat(:,r)=vec

end

但这是行不通的,因为我有类似的东西:

dr=10/20

for r=1:dr:20

    vec=[x;y]+r;

  ...

我现在如何将向量存储在矩阵中?因为我不能使用r作为列索引,因为大多数时候r arent的值都是整数。

许多选项,例如:

r=1:dr:20
for rr=1:length(r)

    vec=[x;y]+r(rr);
    mat(:,rr)=vec;
...

或者

col = 1;
for r=1:dr:20

    vec=[x;y]+r;
    mat(:,col)=vec;
    col = col + 1;
    ....

但是无论您选择什么,都必须mat在for循环之前预先分配这样的内容:

mat = zeros(length(x) + length(y), length(1:dr:20))

当在Matlab中使用循环时,预分配是必不可少的,否则循环运行效率极低。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章