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

Арифметические операторы являются самыми распространенными и известными. В отличие от большинства языков программирования в системе 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)
       

>> m1=[2 6 3; 5 8 -3]

m1 =

2 6 3

5 8 -3

>> m2=[7 6 10; -5 6 -5]

m2 =

7 6 10

-5 6 -5

>> m2-m1

ans =

5 0 7

-10 -2 -2

>> minus(m2,m1)

ans =

5 0 7 // результат одинаковый

-10 -2 -2

 

 

Обратите внимание на то, что каждый оператор имеет аналогичную по назначению функцию. Например, оператору матричного умножения * соответствует функция mtimes(Ml,M2). Примеры применения арифметических операторов уже не раз приводились, так что ограничимся несколькими дополнительными примерами:

Соответствие функций операторам и командам в системе MATLAB является одним из основных положений программирования. Оно позволяет одновременно использовать элементы как операторного, так и функционального программирования.

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

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

Операторы отношения служат для сравнения двух величин, векторов или матриц. Все операторы отношения имеют два операнда, например х и у, и записываются, как показано в табл. 8.2.


Таблица 8.2. Операторы и функции отношения

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

Данные операторы выполняют поэлементное сравнение векторов или матриц одинакового размера и возвращают значение 1 (True), если элементы идентичны, и значение 0 (False) в противном случае. Если операнды — действительные числа, то применение операторов отношения тривиально:

» eq(2,2)

ans =

» 2==2

ans =

» ne(l,2)

ans =

» 2 ~- 2

ans =

» 5 > 3

ans =

» le(5.3)

ans =

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

Логические операторы и соответствующие им функции служат для реализации поэлементных логических операций над элементами одинаковых по размеру массивов (табл. 8.3).

Таблица 8.3. Логические операторы и функции MATLAB

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

Работа операторов поясняется приведенными ниже примерами:

»А=[1 2 3];

»В=[1 0 0];

» and(A.B)

ans =

1 0 0

» оr(А.В)

ans =

1 1 1

» А&В

ans =

1 0 0

» А|В

ans=

1 1 1

» not(А)

ans =

0 0 0

» not(B)

ans =

0 1 1

» ~B

ans=

0 1 1

» xor(A.B)

ans =

0 1 1

» any(A)

ans =

» all([0 0 0])

ans =

» all(B)

ans =

» and('abc','012')

ans =

1 1 1

Обратите внимание, что аргументами логических операторов могут быть числа и строки. При аргументах-числах логический нуль соответствует числовому нулю, а любое отличное от нуля число воспринимается как логическая единица. Для строк действует уже отмеченное правило — каждый символ строки представляется своим ASCII-кодом.