可能重复:
Matlab - building an array while looping
Matrix of unknown length in MATLAB?
如何将所有“a”值组合在一起形成一个向量?
for i=1:3
a=2+i
end
这也许是一个样式问题,但是你什么时候在上面的for循环结束后放一个分号,在第一行之后放一个分号也是合适的?
答案 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中获得更好的里程数。