Matlab中有两个逻辑与的运算符:&&和&,其中&&是&的short-circuit形式。
如逻辑表达式A&B,在逻辑运算时,需要同时判断A和B的逻辑,若A=1,B=1,则A&B=1;若A=0,B=1,则A&B=0。
但使用A&&B运算的时候则会只能很多,不需要同时判断A和B的逻辑,只要判断出A=0,则直接把逻辑运算结果置为0。
利用这个特性可以在程序中得到很大的便利,如以下程序:
-
if flag_linear==1 & va==3 & flag_minus==1
-
frequency_max_transant=max(frequency(t_speed>(t0+0) & t_speed<simt*0.4)); %带负载后瞬态时的频率最大值
-
end
由于运算是定义了flag_linear=0而暂时没有定义va和flag_minus,所以程序运行时会提示错误,但只要将程序改为如下形式:
-
if flag_linear==1 && va==3 && flag_minus==1
-
frequency_max_transant=max(frequency(t_speed>(t0+0) & t_speed<simt*0.4)); %带负载后瞬态时的频率最大值
-
end
此时由于flag_linear=0,所以判断时会把if语句直接置0,而不会检测是不是定义了va和flag_minus。
阅读(1837) | 评论(0) | 转发(0) |