用于在Matlab中循环到矢量形成的性能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于在Matlab中循环到矢量形成的性能相关的知识,希望对你有一定的参考价值。

在Matlab中处理循环到矢量形成时遇到了一些麻烦。这是图像处理部分。(关于控制光线)我的orignal soruce代码如下。

for i=1:1:p1
    for j=1:q1
        if A(i,j) <=25
            A(i,j) =0;
        end
    end
end

如何将此代码更改为vector以提高性能?我已经检查了这个网址(https://mathworks.com/help/matlab/matlab_prog/vectorization.html)。

答案

您需要使用逻辑索引:

I = A<=25;

是一个逻辑数组,它是true,其中A小于或等于25.您可以使用此数组索引到A:

A(I) = 0;

A的元素设置为0I为真。

这可以全部写成一个语句:

A(A<=25) = 0;

[我确定此前已经问过这个问题,但我发现没有重复。]

以上是关于用于在Matlab中循环到矢量形成的性能的主要内容,如果未能解决你的问题,请参考以下文章

常用python日期日志获取内容循环的代码片段

我怎样才能为这个matlab“for循环”做矢量化?

FFT 和改变频率并矢量化 FOR 循环

时间循环 - 将矢量数据存储在文件中而不覆盖

如何在PDF矢量图形中更改Matlab的“ exportgraphics”功能中的字体

SURF特征描述与检测的Matlab实现