我很惊讶地发现使用MATLAB的for循环运行时出现了以下不同的成本:
ksize = 100;
klist = 1:ksize;
tic
for m = 1:100000
for k = 1:ksize
end
end
toc
tic
for m = 1:100000
for k = klist
end
end
toc
唯一的区别在于索引列表的创建方式。我本以为第二个版本会更快,但出乎意料!
Elapsed time is 0.055400 seconds.
Elapsed time is 1.695904 seconds.
我的问题有两个方面:第一,是什么导致了上述结果?第二,在MATLAB编程中还有哪些类似的细微差别?我希望能够更好地发现这些低效率的地方。谢谢大家。