我有一个生成矢量的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的值大部分时间都不是整数。
答案 0 :(得分:0)
许多选项,例如:
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;
....
但无论你选择什么,你必须在你的for循环之前预先分配mat
:
mat = zeros(length(x) + length(y), length(1:dr:20))
在Matlab中使用循环时,预分配是必不可少的,否则它们的运行效率会非常低。