在matlab中根据for循环生成的值构造矩阵

时间:2010-07-07 08:34:35

标签: matlab

  

可能重复:
  Matlab - building an array while looping
  Matrix of unknown length in MATLAB?

如何将所有“a”值组合在一起形成一个向量?

for i=1:3
    a=2+i
end

这也许是一个样式问题,但是你什么时候在上面的for循环结束后放一个分号,在第一行之后放一个分号也是合适的?

2 个答案:

答案 0 :(得分:0)

您需要索引a,如下所示:

for ii=1:3
  a(ii) = 2+ii;
end

我更喜欢使用ii作为循环变量,以避免与MATLAB的内置i发生冲突。如果你知道循环开始之前的大小,你也应该预先分配a,如下所示:

N = 100;
a = zeros(1,N);
for ii=1:N
  a(ii) = 2 + ii; 
end

就我个人而言,除了编写单行for ii=1:3循环时,我从未在FOR部分之后添加任何标点符号,如下所示:

for ii=1:N, a(ii) = 2 + ii; end

答案 1 :(得分:0)

请注意,您可以更有效地构建它:

a=1:3;
a=a+2;

第一行将a指定为向量(1,2,3),第二行将2添加到每个元素。

“效率”在如此小的向量中并不重要,但总的来说,如果你习惯于更多地考虑这个问题,那么你将从matlab中获得更好的里程数。