【发布时间】:2013-06-13 01:31:30
【问题描述】:
我正在尝试加快运行大约 100000 次迭代的循环,并且想知道 if 语句的顺序是否对性能有影响。例如,下面的代码会在每次通过 for 循环时在执行 else 中的语句之前检查 if 和 elseif 吗?
for ii = 1:100000
if ii == 1
statements_1;
elseif ii >= 2 && ii <= 10
statements_2;
else
statements_3;
end
end
下面的代码会运行得更快吗?
for ii = 1:100000
if ii > 10
statements_3;
elseif ii >= 2 && ii <= 10
statements_2;
else
statements_1;
end
end
任何帮助将不胜感激
【问题讨论】:
-
在 if/elseifs 链中,放在第一位的条件应该是您期望最有可能成功的条件,放在第二位的条件应该是第二个最有可能成功的条件,因此开。
-
如果您不知道,请查看
tick和tock命令的计时功能。它们对于优化非常有用! MATLAB 也有一个很棒的分析器,但在这里没有多大帮助。 -
@chessofnerd
tic和toc,没有“k”。
标签: performance matlab if-statement for-loop