Некоторые специфика выполнения арифметических и логических операций

При составлении арифметических выражений система MATLAB допускает использование традиционных знаков арифметических операций и символов специальных операций, представленных в таблице 1.5.

Таблица 1.5. Знаки арифметических операций и символы специальных операций в системе MATLAB.

Символ Выполняемое действие
Операции над числовыми величинами
+ Покомпонентное (поэлементное) сложение числовых массивов одинаковой размерности; добавление скалярной величины к каждому элементу массива.
Покомпонентное вычитание числовых массивов одинаковой размерности; вычитание скалярной величины к каждому элементу массива.
* Умножение матриц в соответствии с правилами линейной алгебры; умножение всех элементов массива на скаляр.
.* Покомпонентное умножение элементов массивов одинаковой размерности.
/ Деление скаляра на скаляр; покомпонентное деление всех элементов массива на скаляр; A/B=A*B-1 (A, B – квадратные матрицы одного порядка).
./ Покомпонентное деление элементов массивов одинаковой размерности.
\ A\B=A-1*B (левое матричное деление, A – квадратная матрица).
.\ A.\B – покомпонентное деление элементов B на A (левое поэлементное деление).
^ Возведение скаляра в любую степень; вычисление целой степени квадратной матрицы.
.^ Покомпонентное возведение в степень элементов массива.
' Вычисление сопряженной матрицы.
.' Транспонирование матрицы.
Логические операции
& Логическое умножение скаляров; логическое покомпонентное умножение массивов одинаковой размерности; логическое умножение массива на скаляр.
| Логическое сложение скаляров; логическое покомпонентное сложение массивов одинаковой размерности; логическое сложение массива со скаляром.
~ Логическое отрицание скаляра или всех элементов массива.
Операции отношения (операции сравнения)
== Проверка на равенство.
~= Проверка на неравенство.
> Проверка на «больше».
>= Проверка на «больше или равно».
< Проверка на «меньше».
<= Проверка на «меньше или равно».

Вместе с тем, арифметические операции реализованы в MATLAB с некоторыми характерными особенностями. Наиболее привычным с этих позиций является сложение скалярных величин (т.е. массивов размерности 1х1), аналогичное соответствующему действию в большинстве языков программирования. Если обоими операндами являются массивы одинаковой размерности, то осуществляется покомпонентное сложение элементов с одинаковыми индексами. Если же к массиву любой размерности добавляется скалярная величина, то она добавляется к каждому элементу массива (т.е. добавляемая скалярная величина, по сути, преобразуется в массив той же размерности, что и первое слагаемое (это своего рода аналог приведения типов в выражениях с «разнокалиберными» операндами) и каждый элемент такого сформированного массива равен исходной скалярной величине). Тем не менее, всякая попытка сложить массивы разной размерности (за исключением случая, когда один из операндов – массив размерности 1х1) приводит к соответствующему сообщению об ошибке. Аналогичное приведение типов выполняется для большинства операций, когда одним из операндов является массив, а вторым – скаляр.

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