Логические операторы MATLAB: && vs & - PullRequest
3 голосов
/ 21 января 2012

Если я хочу убедиться, что оператор if выполняется только в том случае, если ОБА из двух условий выполняются, следует ли использовать & или && между предложениями оператора?

Например,, если я буду использовать

if a == 5 & b == 4

или

if a == 5 && b == 4

Я понимаю, что первое является поэлементным, а второе способно к короткому замыканию, но не ясно, что это значит.

1 Ответ

5 голосов
/ 21 января 2012

Для скалярного логического условия я рекомендую вам использовать &&.Короткое замыкание означает, что второе условие не оценивается, если первое - false , но в любом случае вы знаете, что результат ложен.Либо &, либо && one будет true, только если обе стороны выражения верны, но & может вернуть матричный результат, если один из операндов является матрицей.

Кроме того, я считаюв Matlab сравнения должны выполняться с ==, а не с = (присваивание).

...