matlab - 如何将 && 操作数求解为逻辑标量

标签 matlab if-statement logic logical-operators operands

我在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/

相关文章:

matlab - CPLEX API for MATLAB 中的分段线性约束

Java if else 语句有帮助吗?

algorithm - 节省工作时间的实用位操作

c# - 如果 Request.QueryString 不存在,ASP.NET 设置变量

mysql - 根据左连接的列值计算行数

algorithm - 将 10 位值合并为一个唯一字节

clojure - core.logic 占主导地位的领域 [软]

multithreading - MATLAB 上的进程间通信

matlab - 如何从表格在matlab中制作数据透视表

MATLAB:图像角坐标和引用元胞数组