Логические функции
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.