在matlab中运行代码之后,我遇到了这个错误,并且不确定如何解决它我怎样才能解决这个问题。
警告:
和&&运算符的操作数必须可转换为逻辑标量值。

    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

但我不能确定,因为我不知道代码应该做什么:)

10-01 13:32