回答:
単一のアンパサンド&は論理AND演算子です。二重のアンパサンド&&も、短絡動作を採用した論理AND演算子です。短絡とは、2番目のオペランド(右側)が最初のオペランド(左側)によって完全に決定されない場合にのみ評価されることを意味します
A&B(AとBが評価されます)
A && B(Bは、Aがtrueの場合にのみ評価されます)
d != 0 && 1/d
vs- d !=0 & 1/d
最初はゼロによる除算を保証せず、2番目は保証しません。
&&
||
常にスカラー入力を受け取り、短絡します。 配列入力|
を&
受け取り、if / whileステートメントでのみ短絡します。割り当てについては、後者は短絡しません。
詳細については、これらのドキュメントページを参照してください。
&
と|
if / whileステートメントに情報がありますか?R2012bとR2014aではそうではないようです。
他の言語と同様に、&
は論理ビットごとの演算子&&
ですが、は論理演算です。
たとえば(私の構文を許して)。
もしも
A = [True True False True]
B = False
A & B = [False False False False]
..または..
B = True
A & B = [True True False True]
の場合&&
、右のオペランドは、左のオペランドがtrueで、結果が単一のブール値である場合にのみ計算されます。
x = (b ~= 0) && (a/b > 18.5)
それが明確であることを願っています。
bitand
MATLABのビット単位の論理AND演算子です。
条件付きステートメント(IF、WHILEなど)で使用する引数を作成するときの経験則は、常に && / ||を使用することです。非常に正当な理由がない限り、フォーム。2つの理由があります...
&と|でのベクトルのMATLABの解像度に依存するのではなく、これを行うと、コードは少し冗長になりますが、LOTの安全性と保守が容易になります。
r((r<2)&(r<2))
。
&
アレイ&&
で操作できますが、スカラーでのみ操作できます。