我对 matlab 运算符感到困惑|。你能说一下它实际上是什么意思吗?
假设我有 2 个图像矩阵image1,image2那么这image3=image1|image2;意味着什么?
谢谢
我对 matlab 运算符感到困惑|。你能说一下它实际上是什么意思吗?
假设我有 2 个图像矩阵image1,image2那么这image3=image1|image2;意味着什么?
谢谢
此运算符代表逐元素逻辑或操作:请参阅doc。
假设image1和image2是逻辑矩阵(条目为true或false),则image3 = image1 | image2;表示 中的每个条目image3是和中的相应条目的逻辑image1或image2
逐元素逻辑或运算
所以:
[1 0] | [1 1]会导致[ 1 1 ]
和,
[0 1] | [0 0]会导致[ 0 1 ].
在您的情况下image3,将是由元素逻辑或获得的大小矩阵image1并保持真(1)或假。image2
通过对早期语言(C、C++)中使用的运算符的扩展,从广义上讲,在从 C 派生的 MATLAB 中, |具有标准含义,即OR布尔逻辑运算符。
至于你的评论element-wise multiplication or division in matrix we use . as well, but for what purpose do we use |?,如果我们使用.|,那么它就相当于|,就像.+和.-。所有这些运算符都要求操作数大小相等。但是,历史上由于正态乘法和矩阵乘法的符号相同,所以有两个符号,*和.*。这些符号*和.*是完全不同的,以避免正常乘法和矩阵乘法在逻辑上的歧义。同样,除法运算也是如此。
等效操作:
.+==+
.-==-
.|==|
不等价的操作:
.*!=*
./!=/
假设您有两个大小相同的矩阵image1和image2(可以包含逻辑但也可以包含其他值)
然后image3 = image1 | image2会给你所谓的image1and的“逻辑掩码” 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]