Арифметические
и логические операции
При составлении
алгебраических выражений Matlab
разрешает использование
традиционных знаков арифметических операций. Однако, даже такие традиционные
операции, как сложение и вычитание, в выражениях Matlab применяются особым способом. Самым
привычным является сложение скалярных величин (т.е массивов размерности 1x1), соответствующие аналогичному
действию в большинстве алгоритмических языков.
Если обоими операндами
являются массивы одинаковой размерности, то осуществляется покомпонентное
сложение элементов с одинаковыми индексами.
Если к массиву любой
размерности добавляется скалярная величина, то она добавляется к каждому
элементу массива. По сути дела, добавляемое скалярное значение преобразуется в
массив такой же размерности, что и первое слагаемое, и каждый элемент
расширенного массива равен этому значению. Попытка сложить массивы разной
размерности (за исключением случая, когда один операнд – массив 1x1) система пресекает с выдачей
соответствующего сообщения об ошибке.
Впервые знак операции
возведения в степень в виде x**y
появился в Fortran (1954). Вертикальная стрелка ↑ как
знак возведения в степень был предложен спустя несколько лет в проекте языка Algol 58. Символ ^ для
этой же цел был взят на вооружение Basic, откуда и перекочевал в Matlab. К сожалению, ни С, ни Pascal не включили аналогичную операцию в
набор элементарных действий.
При выполнении логических
операций над числами действует соглашение, принятое в C, - ненулевые значения рассматриваются
как истина (true), а нулевые как ложь
(false). Если операндами логической формулы
являются массивы, то операция производиться над элементами с одинаковыми
индексами. Результатом такой операции является массив такой же размерности, что
и операнды, заполненный нулями и единицами в зависимости от исхода
поэлементного действия.
Список арифметических и
логических операций Matlab
приведен в
таблице 3.
Таблица 3 – Арифметические и
логические операции Matlab.
Символ
операции
|
Выполняемое
действие
|
|
Операции над числовыми величинами
|
+
|
Покомпонентное
сложение числовых массивов одинаковой размерности;
Добавление
скалярной величины к каждому элементу массива;
Сложение
скалярных величин;
|
-
|
Покомпонентное
вычитание числовых массивов одинаковой размерности;
Вычитание
скалярной величины к каждому элементу массива;
Вычитание
скалярных величин;
|
*
|
Умножение
матриц в соответствии с правилами линейной алгебры (число столбцов первого
сомножителя должно быть равно числу строк второго сомножителя);
Умножение
всех компонент вектора на скаляр;
Умножение
скаляра на скаляр;
|
/
|
Деление
скаляра на скаляр;
Покомпонентное
деление всех элементов массива на скаляр:
A / B = A*B-1 =
A* inv(B) (A,B – квадратные матрицы одного порядка);
|
. /
|
Покомпонентное
деление элементов массивов одинаковой размерности;
|
\
|
A \ B = A-1*B (левое матричное деление, А –
квадратная матрица)
|
.
\
|
A.\B – покомпонентное деление элементов B на А (левое поэлементное деление);
|
^
|
Возведение
скаляра в любую степень;
Вычисление
целой степени квадратной матрицы;
|
‘
|
Вычисление
сопряженной матрицы;
|
.’
|
Транспонирование
матрицы;
|
^-1
|
Вычисление
обратной величины скаляра;
A^-1 - Вычисление обратной матрицы (A-квадратная матрица);
|
|
Логические операции
|
&
(and)
|
Логическое
умножение скаляров;
Логическое
покомпонентное умножение массивов одинаковой размерности;
|
|
(or)
|
Логическое
сложение скаляров;
Логическое
покомпонентное умножение массивов одинаковой;
Логическое
сложение массива со скаляром;
|
~ (not)
|
Логическое
отрицание скаляра или всех элементов массива;
|
Xor
|
Логическое
исключающее или
|
|
Операции отношения
|
==
|
Проверка
на равенство
|
~=
|
Проверка
на не равенство
|
>
|
Проверка
на «больше»
|
>=
|
Проверка
на «больше или равно»
|
<
|
Проверка
на «меньше»
|
<=
|
Проверка
на «меньше или равно»
|
|