В чем разница между &
и &&
логическими операторами в MATLAB?
matlab
logical-operators
short-circuiting
Фантомас
источник
источник
&
может работать с массивами, но&&
может работать только со скалярами.d != 0 && 1/d
vsd !=0 & 1/d
- первое гарантирует отсутствие деления на ноль, второе - нет.&
делает короткое замыкание, если вif
заявлении. И&&
принимает скалярные входы. @ Ответ Лорен ниже правильный.&&
и||
всегда принимайте скалярные входы и закорачивайте.|
и&
принимать входные данные массива и короткое замыкание только в операторах if / while. По назначению последние не замыкают.См. Эти страницы документации для получения дополнительной информации.
источник
&
и|
в операторах if / while? Похоже, что это не относится к R2012b и R2014a.Как уже было сказано другими,
&
является логическим оператором , и&&
это короткое замыкание и оператора . Они различаются тем, как оцениваются операнды, а также работают ли они с массивами или скалярами:&
(Оператор И) и|
(Оператор ИЛИ) могут работать с массивами поэлементно.&&
и||
являются версиями с коротким замыканием, для которых второй операнд оценивается только тогда, когда результат не полностью определяется первым операндом. Они могут работать только со скалярами , но не с массивами.источник
Оба являются логическими операциями И. Однако && - это оператор "короткого замыкания". Из документов MATLAB:
Подробнее здесь .
источник
Подобно другим языкам,
&
это логический побитовый оператор, а&&
это логическая операция.Например (простите за синтаксис).
Если..
..или..
Для
&&
правый операнд вычисляется только в том случае, если левый операнд истинен, а результатом является одно логическое значение.x = (b ~= 0) && (a/b > 18.5)
Надеюсь, это ясно.
источник
bitand
это побитовый логический оператор AND в MATLAB.&& и || являются короткие замыкания операторов , работающих на скаляров. & и | работают с массивами и используют короткое замыкание только в контексте выражений цикла
if
илиwhile
.источник
Хорошее практическое правило при создании аргументов для использования в условных операторах (IF, WHILE и т. Д.) - всегда использовать && / || формы, если нет веской причины не делать этого. Есть две причины ...
Выполнение этого вместо того, чтобы полагаться на разрешение векторов в MATLAB в & и |, приводит к коду, который немного более подробный, но НАМНОГО безопаснее и проще в обслуживании.
источник
r((r<2)&(r<2))
».