我对matlab运算符|
感到困惑。你能说出它究竟意味着什么吗?
假设我有两个图像矩阵image1
和image2
那么image3=image1|image2;
意味着什么?
由于
答案 0 :(得分:2)
此运算符代表元素逻辑或操作:请参阅doc。
假设image1
和image2
是逻辑矩阵(条目为true
或false
),则image3 = image1 | image2;
表示image3
中的每个条目是image1
和image2
答案 1 :(得分:2)
元素逻辑OR运算
这样:
[1 0] | [1 1]
会产生[ 1 1 ]
和
[0 1] | [0 0]
会产生[ 0 1 ]
。
在您的情况下,image3
将是一个大小为image1
和image2
的矩阵,其中包含通过元素逻辑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)
假设您有两个大小相同的矩阵image1
和image2
(可以包含逻辑但也可以包含其他值)
然后image3 = image1 | image2
将为您提供image1
和image2
所谓的“逻辑掩码”。
这意味着图像3在至少一个图像为非零数的点处等于1(真),如果它们都为零则等于0(假)。
示例:
image1 = [ 0 255;
166 0]
image2 = [-123 0;
255 0]
image3 = image1 | image2
% Will give as output:
[1 1
1 0]