首页 > 解决方案 > Matlab循环优化 - 逻辑索引

问题描述

下面的 matlab 代码存在严重的性能问题。它运行但循环需要很多时间,我想优化它。谁能帮我把它重写为逻辑索引?

非常感谢!

j = 0

for i = 1:n
 if varA(i) < varB(i)
    varC(i) = varD(i);
 else
    varC(i) = varB(i);
    j = j + 1;
 end
end 

标签: matlabmatrixoptimizationindexing

解决方案


通常,您的循环应等于以下代码段:

varC(varA < varB) = varD(varA < varB);
varC(varA >= varB) = varB(varA >= varB);

但是,我需要更多有关如何varA、、varB和查看的信息来验证此解决方案是否有效。varCvarD


推荐阅读