当我收到此错误时,我正在对图像进行一些形态学操作:
函数imlincomb期望它的数组输入参数(A1,A2,...) 拥有相同的课程。
它是在imsubtract()
函数中给出的,其中一个输入是另一个减法的输出。我查看了Matlab文档并找到了Z = imsubtract(X,Y)
的解释:(强调是我的)
返回的数组Z与X 具有相同的大小和类别,除非X是逻辑的,在这种情况下Z是double。
为什么在逻辑输入X的情况下,输出为 double ?!
根本没有意义。特别是,当2个输入参数都是 logical 时,考虑到这个函数主要(如果不是总是)用于图像。
答案 0 :(得分:3)
有3个可能的值(布尔值只能捕获2个值):
0 (true-true, false-false)
1 (true-false)
-1 (false-true)
要看到这一点,请尝试:
>> imsubtract([true,true,false,false],[true,false,true,false])
ans =
0 1 -1 0
如果您想要进一步进行逻辑处理,请调用boolean:
>> boolean(imsubtract([true,true,false,false],[true,false,true,false]))
ans =
0 1 1 0