我正在研究一个具有三个嵌套 for 循环的函数,这对于它的预期用途来说太慢了。瓶颈显然是循环部分——几乎 100% 的执行时间都花在了最里面的循环中。
该函数接受一个称为rM
输入的 2d 矩阵并返回一个称为 3d 的矩阵ec
:
rows = size(rM, 1);
cols = size(rM, 2);
%preallocate.
ec = zeros(rows+1, cols, numRiskLevels);
ec(1, :, :) = 100;
for risk = minRisk:stepRisk:maxRisk;
for c = 1:cols,
for r = 2:rows+1,
ec(r, c, risk) = ec(r-1, c, risk) * (1 + risk * rM(r-1, c));
end
end
end
任何有关加快 for 循环的帮助将不胜感激......