1、预置(preallocation)是编写MATLAB程序比较重要的一个因素,在数组比较大的时候,是否进行预置程序运行时间相差几十倍甚至几百几千倍都很常见。所以使用
A=zero(1,n);
或者
A=zero(n,1);
进行预置通常很重要(如果n不大倒可以不做)。
2、提高MATLAB程序效率的另一个要点是向量化(Vectorization)代替显式循环。向量化表达式主要使用点运算操作符。例如,就楼主的问题而言,可以很简单的写成
A=x.^(1:n);
省略了 for 循环,对于程序效率也会有很大提升。关于点运算更详细的介绍,可以看一下参考资料的链接中我以前回答的问题。
你的错误在于for循环中的语句没有分号,那么每循环一次都会显示中间结果,建议加上分号,并在程序末尾加个无分号的a,意思是显示目前a的结果,具体如下:
a=[];
for i=1:5
a(i)=2*i;
end
a
for i=1:5
a(i)=2*i;
end
a
a = 2 4 6 8 10
a(i)=2*i; 这个语句要加分号哒 亲