Логические функции

0 1 0 0 1 0

1 1 1 1 0 1

0 0 1 0 0 1

Логические операторы

MATLAB обеспечивает следующие логические операторы

 

Оператор Описание
& AND (логическое И)
| OR (логическое ИЛИ)
~ NOT (логическое НЕ)

 

Внимание !В дополнение к этим логическим операторам, в директории opsимеются нес-колько функций, предназначенных для побитовых (поразрядных) логических операций.

 

Каждый логический оператор имеет специфичный набор правил, которые определяют резу-льтат логического выражения:

q Выражения использующие оператор И (&), истинны, если истинны оба операнда. При численных элементах, выражение является истинным, если оба операнда ненулевые. Следующий пример показывает операцию логического И для двух векторов

 

u = [1 0 2 3 0 5];

v = [5 6 1 0 0 7];

u & v

ans =

q Выражения, использующие оператор ИЛИ ( | ), являются истинными если один из операндов является истинным. Выражения с ИЛИ являются ложными только если ло-жными являются оба операнда. При численных элементах, выражение является лож-ным, елси только оба операнда равны нулю. Для приведенных выше векторов uи vимеем

u | v

ans =

q Выражения, использующие оператор ~ выполняют логическое отрицание. Это дает ложный результат, если операнд является истинным и истинный, если операнд явля-ется ложным. При численных элементах, любой ненулевой операнд становится нулев-ым (логическим нулем), а любой нулевой элемент становится равным (логической) единице. Рассмотри операцию логического отрицания вектора u

~u

ans =

Использованием логических операторов с массивами

Логические операторы MATLAB-а сравнивают соответствующие элементы массивов одина-ковой размернсти. Для векторов или прямоугольных массивов, оба операнда должны иметь одинаковый размер, или один из них должен быть скаляром. Если один из элементов являе-тся скаляром, а второй – нет, то здесь также имеет место описанное выше свойство скалярно-го расширения.

 

В дополнение к логическим операторам, MATLAB имеет ряд логических функций.

 

Функция Описание Примеры
xor Выполняет операцию исключающего ИЛИ над своими операндами. При числовых элементах, функция возвращает 1 если один из операндов ненулевой, а второй - нулевой a = 1; b = 1; xor(a,b) ans =
all Возвращает 1, если все элементы ее аргумента являются истинными или не равны нулю; в противном случае результат равен логическому нулю. Над матрицами функция allработает вдоль столбцов A = [0 1 2; 3 5 0] A = 0 1 2 3 5 0 all(A) ans = 0 1 0
any Возвращает единицу, если любой из аргументов является истинным или ненулевым; в против-ном случае вовращает 0. Как и all, anyработает вдоль столбцов матриц. v = [5 0 8]; any(v) ans =

 

Ряд других функций MATLAB-а выполняет логические операции. Например, функцияisnan возвращает 1 для NaN; функцияisinfвозвращает 1 для Inf. Более подробный список можно найти в директории ops.