我在matlab中运行代码后,遇到了这个错误,不知道如何解决。我该如何解决这个问题。
Warning:
Operands to the || and && operators must be convertible to logical scalar values.
Jgray = double(rgb2gray(J));
% Calculate the Gradients
[dIx, dIy] = gradient(Jgray);
if max(dIx)<=103 && max(dIy)<=100
B = abs(dIy) - abs(dIx);
else
B = abs(dIx) - abs(dIy);
end
最佳答案
如果 dIx 和 dIy 是矩阵(与一维向量相反),max(dIx)
和 max(dIy)
将返回向量。
&&
和 ||
应该用于比较标量,而不是向量。
你可能想要输入
if max(dIx(:))<=103 && max(dIy(:))<=100
但我不能确定,因为我不知道代码应该做什么:)
关于matlab - 如何将 && 操作数求解为逻辑标量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9172789/