MATLAB中两个矩阵的高效元素智能函数

时间:2015-10-14 13:57:20

标签: matlab function matrix

我有两个矩阵A和B,我想对它们执行元素最大化。我刚刚编写了以下代码,这些代码效率很低,需要很长时间才能运行。

A = C;
for x = 1 : height
    for y = 1 : width
        if(A(x, y) < B(x, y))
            A(x, y) = B(x, y);
        end
    end
end 

我搜索了SO,并发现使用bsxfun函数(123)回答了类似的问题。但我无法理解这一点。

这里也可以bsxfun申请吗?

我想要的是A = max(B, C)

1 个答案:

答案 0 :(得分:1)

bsxfun(@(x,y) x<y,A,B)

将返回A> B的索引。

所以:

A(bsxfun(@(x,y) x<y,A,B))=B(bsxfun(@(x,y) x<y,A,B));

应该做的伎俩。

但不需要使用bsxfun,你可以去:

A(A<B)=B(A<B);

或者只是使用评论中所述的max(羞辱我)