通常情况下,matlab应该避免使用大量的循环,而应该使用函数式编程,例如已知 y=1+1/3+1/5+…+1/(2n-1),当n=100000000时,求y的值:不应该使用:
y=0;
n=100000000;
tic;
for i=1:n
y=y+1/(2*i-1);
end
y
toc;
而应该使用:
n=100000000;
tic;
i=1:2:2*n-1;
y=sum(1./i);
y
toc;
但是我在2016b中试验,前一段代码(循环)执行的并不慢--二者的差距并不大,何故?2016b做了后台的优化改进?