2012-01-21 23 views
3

文の句の間に&または&&を使用する必要があるかどうかを確認するには、if文が2つの条件の両方が真である場合のみ実行するようにしますか?例えばMATLAB論理演算子:&& vs&

は、私が

if a == 5 & b == 4 

または

if a == 5 && b == 4 

を使用する必要があります私は、前者は要素ごとであり、後者が短絡することが可能であることを理解しますが、これは何を意味するのかについては明らかではありませんよ。

+1

MATLABのドキュメントでは、演算子の短絡[ここ](http://www.mathworks.co.uk/help/techdoc/matlab_prog/f0-40063.html#f0-39129)、 '&&'と '演算子[here](http://www.mathworks.co.uk/help/techdoc/ref/logicaloperatorsshortcircuit.html)と要素ごとの演算子 '&'と '|' [ここ](http: /www.mathworks.co.uk/help/techdoc/ref/logicaloperatorselementwise.html)。 – Chris

答えて

5

スカラーブール条件の場合は、&&を使用することをお勧めします。短絡とは、第1の条件がの場合、の場合は評価されませんが、結果はfalseです。 &または&&のいずれかは、式の両辺が真である場合のみ真となりますが、オペランドの1つが行列の場合は&が行列結果を返すことができます。

また、私は(割り当て)ではなく、==でMatlabの比較を行うべきだと考えています。

+0

ああスナップ、==チップのおかげで! – CaptainProg

+0

ちなみに、なぜ短絡をAND条件にしたくないのですか?すべての条件が真である場合にのみ真であるため、最初の条件が評価されて偽であると判明した場合、それ以上の評価は処理能力の無駄です。 – CaptainProg

+0

@CaptainProg副作用の機能を評価したい場合があります – sverre