【问题标题】:For loop to vector formation for performance in Matlab在 Matlab 中用于循环到向量的形成
【发布时间】:2018-09-14 07:45:54
【问题描述】:

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

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

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

【问题讨论】:

标签: matlab loops for-loop vector


【解决方案1】:

你需要使用逻辑索引:

I = A<=25;

true 的逻辑数组,其中 A 小于或等于 25。您可以使用此数组对 A 进行索引:

A(I) = 0;

A 的元素设置为0,其中I 为真。

这都可以写成一条语句:

A(A<=25) = 0;

[我确定之前在这里已经问过这个问题,但我找不到任何重复项。]

【讨论】:

    猜你喜欢
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    相关资源
    最近更新 更多