matlab中&和&&的用法与区别

今天在matlab仿真基于区域生长的图像分割的算法时,遇到了

??? Operands to the || and && operators must be convertible to logical
scalar values.


Error in ==> regiongrowing at 25
       if Y(i+u,j+v)==0 && abs(I(i+u,j+v)-seed)<=threshold
       %判断是否未存在于输出矩阵Y,并且为符合阈值条件的点

问题:用||和&&必须是标量

所以对于|| && 只能用于标量  而&用于矩阵运算

不同点一
当判断两个逻辑值,例如A&(f(x)>c)和A&&(f(x)>c)时,对于第一种情况,不论A是否为真,A和(f(x)>c)都要计算,但是对第二种情况,如果A是false,那么后面的(f(x)>c)就不用计算了,倘若f(x)是一个计算量大的函数,那么这将节省很多时间。
不同点二
&适用于矩阵间的逻辑运算,&&不适用,只适用于单个元素,包括数值和字符。


你可能感兴趣的:(MATLAB,常用命令及用法,matlab,算法)