我试图加速一个运行约100000次迭代的循环,并想知道if语句的顺序是否对性能有影响。例如,下面的代码会在每次执行for循环时执行else语句之前检查if和elseif吗?MATLAB:If语句的顺序是否影响性能
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,先放置的条件应该是一个链你期望成为最有可能成功的人,第二个条件应该是第二个最有可能成功的条件,等等。 – Patashu
为防万一您没有意识到这一点,请查看定时功能的'tick'和'tock'命令。它们对于优化非常有用! MATLAB也有一个很好的分析器,但这在这里没有多大帮助。 – chessofnerd
@chessofnerd'tic'和'toc',no'k'。 –