Операторы отношения и их функции

ЭЛЕМЕНТАРНЫЕ МАТЕМАТИЧЕСКИЕ ВЫЧИСЛЕНИЯ

Арифметические операторы и функции

Арифметические операторы наиболее распространены и известны. Каждый оператор имеет аналогичную по назначению функцию. Так оператору матричного умножения «*» соответствует функция mtimes(Ml, M2). Примеры применения арифметических операторов приводились ранее. В табл. 3.1 представлен список арифметических операторов и их синтаксис.

Таблица 3.1

Функция Название и символ обозначения оператора Синтак-сис Функция Название и символ обозначения оператора Синтак-сис
Plus Плюс + М1 + М2 Minus Минус – М1 – М2
Uplus Унарный плюс + Uminus Унарный минус – –М
Mtimes Матричное умножение * М1*М2 Times Поэлементное умножение массивов .* А1.*А2
Mpower Возведение матрицы в степень ^ М1^х Power Поэлементное возведение массива в степень .^ А1.^х
Mrdivide Деление матриц слева направо / М1/М2 Rdivide Поэлементное деление массивов слева направо ./ А1./А2
Mldivide Обратное (справа налево) деление матриц \ M1\M2 Ldivide Поэлементное деление массивов справа налево .\ А1.\А2
Kron Тензорное умножение Кронекера kron kron(X, Y)      

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

Вычисление произведений

Три функции перемножают элементы матриц (примеры в табл. 3.2):

• prod(A) возвращает произведение элементов массива, если А – вектор, или вектор-строку, содержащую произведения элементов каждого столбца, если А – матрица; prod (A, dim) возвращает матрицу (массив размерности два) с произведением элементов массива А по столбцам (dim = 1), по строкам (dim = 2), по иным размерностям в зависимости от значения скаляра dim;

• cumprod(A) возвращает произведение с накоплением. Если А – вектор, то cumprod(A) возвращает вектор, содержащий произведения с накоплением элементов вектора А. Если А – матрица, то cumprod(A) возвращает матрицу того же размера, что и А, содержащую произведения с накоплением для каждого столбца матрицы А (первая строка – без изменений, во второй строке – произведение первых двух элементов каждого столбца, в третьей строке – элементы второй строки матрицы-результата умножаются на элементы третьей строки матрицы входного аргумента по столбцам и т. д.); cumprod(A, dim) возвращает произведение с накоплением элементов по строкам или столбцам

матрицы в зависимости от значения скаляра dim;

Таблица 3.2

Матрица Операция Матрица Операция
»A = [1234; 2457; 6] A = »B = prod(A) B = »A = [1 2 3;4 5 6;7 8 9] A = 1 2 3 4 5 6 7 8 9 »В = cumprod(A) B = 1 2 3 4 10 18 28 80 162

• cross(U, V) возвращает векторное произведение векторов U и V в трехмерном пространстве, т. е. W = U ´ V (U и V – обязательно векторы с тремя элементами); cross(U, V, dim) возвращает векторное произведение U и V по размерности, определенной скаляром dim. Здесь U и V – многомерные массивы, которые должны иметь одну и ту же размерность, причем размер векторов в каждой размерности size(U, dim) и size(V, dim) должен быть равен 3.

Суммирование элементов

Определены следующие функции суммирования элементов массивов (примеры в табл. 3.3):

• sum(A) возвращает сумму элементов массива, если А – вектор, или вектор-строку, содержащую сумму элементов каждого столбца, если А – матрица; sum(A, dim) – сумму элементов массива по столбцам (dim = 1), строкам (dim = 2) или иным размерностям в зависимости от значения скаляра dim;

Таблица 3.3

Матрица Операция Матрица Операция
»A = magic(4) A = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 »B = sum(A) B = 34 34 34 34 »A = magic(4) A = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 »В = cumsum(A,1) B = 16 2 3 13 21 13 13 21 30 20 19 33 34 34 34 34

• cumsum(A) выполняет суммирование с накоплением. Если А – вектор, то cumsum(A) возвращает вектор, содержащий результаты суммирования с накоплением элементов вектора А. Если А – матрица, то cumsum(A) возвращает матрицу того же размера, что и А, содержащую суммирование с накоплением для каждого столбца матрицы А; cumsum(A, dim) выполняет суммирование с накоплением элементов по размерности, определенной скаляром dim. Например, cumsum(A, 1) выполняет суммирование по столбцам.

Операторы отношения и их функции

Над массивами можно выполнять операции отношения для сравнения двух величин, векторов или матриц одинакового размера:

A < B , A <= B , A > B , A >= B (только для действительных частей), A = = B, A ~ =B (равно/не равно – для действительных и мнимых частей), которые порождают массив с единицами (истина) и нулями (ложь) той же размерности. Все операторы отношения имеют 2 операнда, например x и y, и записываются, как показано в табл. 3.4. Примеры использования даны в табл. 3.5.

Таблица 3.4

Функция Название Оператор Пример
Eq Равно = = x = = y
Ne He равно ~ = x ~ = y
Lt Меньше чем < x < y
Gt Больше чем > x > y
Le Меньше или равно <= x <= y
Ge Больше или равно >= x >= y

Таблица 3.5

Дано Равно He равно Больше Меньше Больше или равно Меньше или равно
»d = [4 3] d = 4 3 »f = [2 3] f = 2 3 »d = = f ans = 0 1 »d ~ = f ans = 1 0 »d > f ans = 1 0 »d < f ans = 0 0 »d >= f ans = 1 1 »d <= f ans = 0 1
               

Если один из операндов – скаляр, происходит сравнение всех элементов второго операнда-массива со значением этого скаляра.

Логические операции

Аналогично реализуются и логические операции. Логические операторы и соответствующие им функции (табл. 3.6) служат для реализации поэлементных логических операций над элементами одинаковых по размеру массивов: отрицания ~A, конъюнкции (И) A&B, дизъюнкции (ИЛИ) A|B и т. д. Аргументами логических операторов могут быть числа и строки. Если аргумент – число, логический нуль соответствует числовому нулю, а любое отличное от нуля число – логической единице. Для строк действует правило – каждый символ строки представляется своим ASCII-кодом.

Таблица 3.6

Функция Название
And Логическое И (AND) &
Or Логическое ИЛИ (OR) |
Not Логическое НЕ (NOT) ~
Хоr Исключающее ИЛИ (EXCLUSIVE OR)
Any Верно, если не все элементы вектора равны нулю
All Верно, если все элементы вектора не равны нулю

Таблица 3.7

Дано Логическое И Логическое ИЛИ Логическое НЕ (NOT)
»d = [1 1 1] d = 1 1 1 »f = [0 0 1] f = 0 0 1 »d & f ans = 0 0 1 » d½f ans = 1 1 1 »~f ans = 1 1 0
Исключающее ИЛИ Верно, если не все элементы вектора равны нулю Верно, если все элементы вектора не равны нулю
»xor(d,f) ans = 1 1 0 »any(f) ans = »all(f) ans =

Примеры использования логических операций приведены в табл. 3.7.

Наши рекомендации