在这个表达式中
lmin=lminflag & ~kmod & actminsub<nsm*pminu & actminsub>pminu;
& 运算符像按位 AND 运算符吗?lminflag 和 kmod 都是以逻辑 1 或 0 作为元素的数组,而 lmin 结果也是 1 或 0。
在这个表达式中
lmin=lminflag & ~kmod & actminsub<nsm*pminu & actminsub>pminu;
& 运算符像按位 AND 运算符吗?lminflag 和 kmod 都是以逻辑 1 或 0 作为元素的数组,而 lmin 结果也是 1 或 0。
是的。
&
是每个元素的 AND 运算符。 &&
是一个标量 AND 运算符,有条件地执行语句的其余部分。例如,给定:
a = true;
b = false;
aa = [true false];
bb = [true true];
fnA = @()rand>0.5; %An anonymous function returning true half the time
然后:
a & b; %returns false
a && b; %returns false (same as above)
然而
aa & bb; %this an error
aa && bb; %returns the array [true false]
当操作数是具有副作用的函数时会更有趣。
b & fnA; %Returns false, and the `rand` function is called (including a small performance hit, and an update to the random state)
b && fnA; %Returns false, and the `rand` function was not called (since `b` is false, the actual value of `fnA` doesn;t effect the result