什么是matlab运算符“|”意思?

时间:2013-05-13 13:40:04

标签: matlab

我对matlab运算符|感到困惑。你能说出它究竟意味着什么吗?

假设我有两个图像矩阵image1image2那么image3=image1|image2;意味着什么?

由于

4 个答案:

答案 0 :(得分:2)

此运算符代表元素逻辑或操作:请参阅doc

假设image1image2是逻辑矩阵(条目为truefalse),则image3 = image1 | image2;表示image3中的每个条目是image1image2

中的逻辑或相应条目

答案 1 :(得分:2)

元素逻辑OR运算

这样:

[1 0] | [1 1]会产生[ 1 1 ]

[0 1] | [0 0]会产生[ 0 1 ]

在您的情况下,image3将是一个大小为image1image2的矩阵,其中包含通过元素逻辑OR获得的trues(1)或falses。

答案 2 :(得分:1)

通过扩展早期语言(C,C ++)中使用的运算符,广泛地说,在从C派生的MATLAB中,|具有标准含义,即布尔逻辑的OR运算符。

关于您对element-wise multiplication or division in matrix we use . as well, but for what purpose do we use |?的评论,如果我们使用.|,那么它等同于|,就像.+.-一样。所有这些运算符都要求操作数大小相等。但是,历史上由于正常乘法和矩阵乘法的符号相同,分别有两个符号*.*。这些符号*.*完全不同,以避免正常乘法和矩阵乘法的逻辑模糊。同样,它也适用于除法运作。

等效操作:

.+ == +

.- == -

.| == |

不等同的操作:

.*!= *

./!= /

答案 3 :(得分:1)

假设您有两个大小相同的矩阵image1image2(可以包含逻辑但也可以包含其他值)

然后image3 = image1 | image2将为您提供image1image2所谓的“逻辑掩码”。

这意味着图像3在至少一个图像为非零数的点处等于1(真),如果它们都为零则等于0(假)。

示例:

image1 = [   0 255;
           166   0]
image2 = [-123   0;
           255   0]
image3 = image1 | image2
% Will give as output:
[1 1
 1 0]