Spec-Zone.ru › Octave 9

8.5.1 Поэлементные логические операторы

Поэлементное логическое выражение представляет собой комбинацию выражений сравнения, использующих логические операторы «или» (‘|’), «и» (‘&’) и «не» (‘!’), а также скобки для управления вложенностью. Истинность логического выражения вычисляется путем объединения значений истинности соответствующих элементов составляющих его выражений. Значение считается ложным, если оно равно нулю, и истинным в противном случае.

Поэлементные логические выражения можно использовать везде, где можно использовать выражения сравнения. Их можно использовать в операторах if и while. Однако матричное значение, используемое в качестве условия в операторе if или while, истинно только в том случае, если все его элементы ненулевые.

Как и операции сравнения, каждый элемент поэлементного логического выражения также имеет числовое значение (1, если он истинен, 0, если ложен), которое используется, если результат логического выражения сохраняется в переменной или участвует в арифметических вычислениях.

Ниже описаны три поэлементных логических оператора.

boolean1 & boolean2

Элементы результата истинны, если истинны оба соответствующих элемента boolean1 и boolean2.

boolean1 | boolean2

Элементы результата истинны, если истинен хотя бы один из соответствующих элементов boolean1 или boolean2.

! boolean
~ boolean

Каждый элемент результата истинен, если соответствующий элемент boolean ложен.

Эти операторы работают поэлементно. Например, выражение

[1, 0; 0, 1] & [1, 0; 2, 3]

возвращает единичную матрицу размера два на два.

Для бинарных операторов применяются правила расширения размерности. См. Расширение размерности. В частности, если один из операндов — скаляр, а другой — матрица, оператор применяется к скаляру и каждому элементу матрицы.

Для бинарных поэлементных логических операторов оба подвыражения boolean1 и boolean2 вычисляются до получения результата. Это может иметь значение, если выражения обладают побочными эффектами. Например, в выражении

a & b++

значение переменной b увеличивается даже в том случае, если переменная a равна нулю.

Такое поведение необходимо для работы логических операторов с матричными операндами, как описано выше.

: TF = and (x, y)
: TF = and (x1, x2, …)

Возвращает результат логической операции И над x и y.

Эта функция эквивалентна операторной записи x & y. Если задано более двух аргументов, логическая операция И применяется последовательно слева направо:

(...((x1 & x2) & x3) & ...)

См. также: or, not, xor.

: z = not (x)

Возвращает результат логической операции НЕ над x.

Эта функция эквивалентна операторной записи ! x.

См. также: and, or, xor.

: TF = or (x, y)
: TF = or (x1, x2, …)

Возвращает результат логической операции ИЛИ над x и y.

Эта функция эквивалентна операторной записи x | y. Если задано более двух аргументов, логическая операция ИЛИ применяется последовательно слева направо:

(...((x1 | x2) | x3) | ...)

См. также: and, not, xor.

© 1996–2026 The Octave Project Developers
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.
https://docs.octave.org/v9.4.0/Element_002dby_002delement-Boolean-Operators.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API