今天看书时看到,与大家分享一下
» for n=1:10x(n)=sin(n*pi/10);
n=10;
end
当有一个等效的数组方法来解给定的问题时,应避免用For循环。例如,上面的第一个例子可被重写为
» n=1:10;
» x=sin(n*pi/10)
x =
Columns 1 through 7
0.3090 0.5878 0.8090 0.9511 1.0000 0.9511 0.8090
Columns 8 through 10
0.5878 0.3090 0.0000
两种方法得出同样的结果,而后者执行更快,更直观,要求较少的输入。
5. 为了得到最大的速度,在For循环(While循环)被执行之前,应预先分配数组。例如,前面所考虑的第一种情况,在For循环内每执行一次命令,变量x的大小增加1。迫使MATLAB每通过一次循环要花费时间对x分配更多的内存。为了消去这个步骤,For循环的例子应重写为
»x=zeros(1,10); %preallocated memory for x
» for n=1:10
x(n)=sin(n*pi/10);
end
现在,只有x(n)的值需要改变。 1# wangmuyidong
»是什么? ::loveliness:: ::sad:: 您说的是什么啊 真的看不懂啊 好专业啊,也没看明白 LZ要说明什么呢
页:
[1]