Арифметические операторы и функции
Начиная с этого урока мы переходим к изучению математических и логических возможностей системы MATLAB. Их изучение мы начнем с операторов и функций – тех кирпичиков, из которых строятся математические выражения. Вычисления математических выражений составляют главную цель любой системы, предназначенной для численных расчетов. Здесь мы рассмотрим полный набор операторов входного языка системы MATLAB 6.0 и соответствующих им функций. Напомним, что полный список операторов выводится командой help ops. Операторы и специальные символы системы MATLAB можно разделить на ряд категорий, которые рассматриваются ниже.
Арифметические операторы являются самыми распространенными и известными. В отличие от большинства языков программирования в системе MATLAB практически все операторы являются матричными, т. е. предназначены для выполнения операций над матрицами. В табл. 8.1 приводится список арифметических операторов и синтаксис их применения.
Таблица 8.1. Арифметические операторы и функции MATLAB.
Функция | Название | Оператор | Синтаксис |
---|---|---|---|
Plus | Плюс | + | М1+М2 |
Uplus | Унарный плюс | + | +М |
Minus | Минус | - | М1-М2 |
Uminus | Унарный минус | - | -М |
Mtimes | Матричное умножение | * | М1*М2 |
Times | Поэлементное умножение массивов | .* | А1*А2 |
Mpower | Возведение матрицы в степень | М1^х | |
Power | Поэлементное возведение массива в степень | А1^х | |
Mldivide | Обратное (справа налево) деление матриц | \ | M1\M2 |
Mrdivide | Деление матриц слева направо | / | М1/М2 |
Ldivide | Поэлементное деление массивов справа налево | .\ | А1.\А2 |
Rdivide | Поэлементное деление массивов слева направо | ./ | А1. /А2 |
Kron | Тензорное умножение Кронекера | kron | kron(X.Y) |
Обратите внимание на то, что каждый оператор имеет аналогичную по назначению функцию. Например, оператору матричного умножения * соответствует функция mtimes(M1,M2). Примеры применения арифметических операторов уже не раз приводились, так что ограничимся несколькими дополнительными примерами:
>
>
A
=
[
1
2
3
];
>
>
B
=
[
4
5
6
]:
>
>
B
-
A
ans
=
3
3
3
>
>
minus (В. А)
ans
=
3
3
3
>
>
А.
^
2
ans
=
1
4
9
>
>
power(A,
2
)
ans
=
1
4
9
>
>
ДАВ
ans
=
4.0000
2.5000
2.0000
>
>
Idivide(A.B)
ans
=
4.0000
2.5000
2.0000
>
>
rdivide(A.B)
ans
=
0.2500
0.4000
0.5000
Соответствие функций операторам и командам в системе MATLAB является одним из основных положений программирования. Оно позволяет одновременно использовать элементы как операторного, так и функционального программирования.
Следует отметить, что в математических выражениях операторы имеют определенный приоритет исполнения. Например, в MATLAB приоритет логических операторов выше, чем арифметических, приоритет возведения в степень выше приоритетов умножения и деления, приоритет умножения и деления выше приоритета сложения и вычитания. Для изменения приоритета операций в математических выражениях используются круглые скобки. Степень вложения скобок не ограничивается.