Matlab循环优化-逻辑索引

Matlab循环优化-逻辑索引,matlab,matrix,optimization,indexing,Matlab,Matrix,Optimization,Indexing,下面的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 j=0 对于i=1:n 如果varA(i)

下面的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 
j=0
对于i=1:n
如果varA(i)
通常,您的循环应该等于以下代码段:

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

但是,我需要更多关于
varA
varB
varC
varD
的信息来验证此解决方案是否有效。

您能否提供更多关于
varA
varB
的信息,
varC
varD
look?@Axel它们是相当大维度的双类型矩阵变量,我还没有机会。但我会尽快告诉你的@Axel@AdriaanOP已经回答说输入是大维度的双数组。我用各种双数组测试了这个答案。我真的不明白你的担心。我只是写道,我无法“验证”它是否在OPs情况下有效,因为我没有实际的阵列。然而,没有理由认为这是行不通的。我觉得把这个贴上猜测的标签是很不礼貌的。@Axel它是有效的!谢谢你的帮助我真的很感激