如何在matlab中进行逻辑掩码

时间:2014-01-09 22:55:51

标签: matlab

我在matlab中有两个向量

A = [0.2 234.4 234 093]
B= [0 0 1 1]

现在我想要的是一种面具,这样当我用B屏蔽A时,我得到[0 0 234 093]。如何在matlab中做到这一点?

3 个答案:

答案 0 :(得分:3)

Logical indexing:

mask = logical(B);
A(~mask) = 0;

如果你想提取元素,你可以

A(logical(B))

,提供[234 93]

答案 1 :(得分:2)

只需乘以元素:

A.*B

如果掩码值B不一定是1,则可以使用

A.*logical(B)

答案 2 :(得分:2)

以下是几种方式:

>> A .* ~~B
>> A .* (B~=0)
>> A(B==0) = 0
>> A(~B) = 0
>> A(~(A&B)) = 0
>> A.^B - ~B
>> A*diag(B)