MATLAB обеспечивает следующие арифметические операторы
Операторы
Описание
+
Сложение
-
Вычитание
.*
Умножение
./
Правое деление
.\
Левое деление
+
Унарный плюс (изменение знака объекта)
-
Унарный минус
:
Оператор двоеточия
.^
Степень
.’
Транспонирование
‘
Комплексно-сопряженное транспонирование
*
Матричное умнжение
/
Матричное правое деление
\
Матричное левое деление
^
Степень матрицы
Арифметические операторы и массивы
За исключением некоторых матричных операторов, арифметические операторы MATLAB-а работают с соответствующими элементами массивов одинаковой размерности. Для векторов и прямоугольных массивов, оба операнда должны иметь одинаковый размер, или же один из них должен быть скаляром. Если один операнд является скаляром, а второй - нет, MATLAB применяет данный скаляр ко всем элементам второго операнда; данное свойство известно как скалярное расширение (scalar expansion).
Следующий пример иллюстрирует свойство скалярного расширения при вычислении произ-ведения скалярного опренда и матрицы
A = magic(3)
A =
8 1 6
3 5 7
4 9 2
Введем
3 * A
что дает
ans =
24 3 18
9 15 21
12 27 6
Операторы отношения
MATLAB обеспечивает следующие операторы отношения
Операторы
Описание
<
Меньше чем
<=
Меньше чем или равно
>
Больше чем
>=
Больше чем или равно
==
Равно
~=
Не равно
Операторы отношения и массивы
Операторы отношения в MATLAB-е сравнивают соответствующие элементы двух массивов с одинаковыми размерностями. Эти операторы всегда действуют поэлементно. В приведен-ном ниже примере, результирующая матрица показывает, где элемент матрицы A равен со-ответствующему элементу матрицыB.
A = [2 7 6; 9 0 5; 3 0.5 6];
B = [8 7 0; 3 2 5; 4 –1 7];
A == B
ans =
0 1 0
0 0 1
0 0 0
Для векторов и прямоугольных массивов, оба операнда должны иметь одинаковый размер или один из них должен быть скаляром. В случае когда один операнд является скаляром, а второй – нет , MATLAB проверяет данный скаляр с каждым элементом другого операнда. Те положение, где заданное отношение является истинным, принимают значение 1. Положение, где отношение является ложным, принимают значение 0.
Операторы отношения и пустые массивы
Операторы отношения работают и с массивами, у которых какая-либо размерность равна ну-лю (что приводит к пустому массиву), если оба массива имеют одинаковый размер или же один из них является скаляром. Однако, выражения вида
A == [ ]
приводят к ошибке, если только массив Ане имеет размеры 0х0 или 1х1. Для проверки явля-ется ли данный массив пустым, следует использовать специальную функцию isempty(A).
Логические операторы
MATLAB обеспечивает следующие логические операторы
Оператор
Описание
&
AND (логическое И)
|
OR (логическое ИЛИ)
~
NOT (логическое НЕ)
Внимание !В дополнение к этим логическим операторам, в директории opsимеются нес-колько функций, предназначенных для побитовых (поразрядных) логических операций.
Каждый логический оператор имеет специфичный набор правил, которые определяют резу-льтат логического выражения:
q Выражения использующие оператор И (&), истинны, если истинны оба операнда. При численных элементах, выражение является истинным, если оба операнда ненулевые. Следующий пример показывает операцию логического И для двух векторов
u = [1 0 2 3 0 5];
v = [5 6 1 0 0 7];
u & v
ans =
0 0 1 0 0 1
q Выражения, использующие оператор ИЛИ ( | ), являются истинными если один из операндов является истинным. Выражения с ИЛИ являются ложными только если ло-жными являются оба операнда. При численных элементах, выражение является лож-ным, елси только оба операнда равны нулю. Для приведенных выше векторов uи vимеем
u | v
ans =
1 1 1 1 0 1
q Выражения, использующие оператор ~ выполняют логическое отрицание. Это дает ложный результат, если операнд является истинным и истинный, если операнд явля-ется ложным. При численных элементах, любой ненулевой операнд становится нулев-ым (логическим нулем), а любой нулевой элемент становится равным (логической) единице. Рассмотри операцию логического отрицания вектора u
~u
ans =
0 1 0 0 1 0
Использованием логических операторов с массивами
Логические операторы 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.