Matlab 如何解决,&;逻辑标量的操作数

Matlab 如何解决,&;逻辑标量的操作数,matlab,if-statement,logic,logical-operators,operands,Matlab,If Statement,Logic,Logical Operators,Operands,在matlab中运行代码后,我遇到了这个错误,不确定如何解决它。我怎样才能解决这个问题 警告: | |和&&运算符的操作数必须可转换为逻辑标量值 Jgray=double(rgb2gray(J)); %计算梯度 [dIx,dIy]=梯度(Jgray); 如果max(dIx)如果dIx和dIy是矩阵(与一维向量相反),max(dIx)和max(dIy)将返回向量 应使用&&和|来比较标量,而不是向量 你可能想打字 if max(dIx(:))<=103 && max(dIy(

在matlab中运行代码后,我遇到了这个错误,不确定如何解决它。我怎样才能解决这个问题

警告:

| |和&&运算符的操作数必须可转换为逻辑标量值

Jgray=double(rgb2gray(J));
%计算梯度
[dIx,dIy]=梯度(Jgray);

如果max(dIx)如果dIx和dIy是矩阵(与一维向量相反),
max(dIx)
max(dIy)
将返回向量

应使用
&&
|
来比较标量,而不是向量

你可能想打字

if max(dIx(:))<=103 && max(dIy(:))<=100

如果max(dIx(:)使用矩阵的
&
,而不是
&
|

&&
|
是短路操作员。如果你仔细想想,它们对矩阵毫无意义。例如,当第一个参数为
true
时,短路或-
|
停止并返回
true
但如何将其扩展到矩阵

if max(dIx(:))<=103 && max(dIy(:))<=100