Некоторые специфика выполнения арифметических и логических операций.
При составлении арифметических выражений система MATLAB допускает использование традиционных знаков арифметических операций и символов специальных операций, представленных в таблице 2.6.1.
Вместе с тем, арифметические операции реализованы в MATLAB с некоторыми характерными особенностями. Наиболее привычным с этих позиций является сложение скалярных величин (т.е. массивов размерности 1х1), аналогичное соответствующему действию в большинстве языков программирования. Однако, если обоими операндами являются массивы одинаковой размерности, то осуществляется покомпонентное сложение элементов с одинаковыми индексами. Если же к массиву любой размерности добавляется скалярная величина, то она добавляется к каждому элементу
Таблица 2.6.1. Знаки арифметических операций и символы специальных операций в системе MATLAB.
| Символ | Выполняемое действие |
| Операции над числовыми величинами | |
| + | Покомпонентное (поэлементное) сложение числовых массивов одинаковой размерности; добавление скалярной величины к каждому элементу массива. |
| – | Покомпонентное вычитание числовых массивов одинаковой размерности; вычитание скалярной величины к каждому элементу массива. |
| * | Умножение матриц в соответствии с правилами линейной алгебры; умножение всех элементов массива на скаляр. |
| .* | Покомпонентное умножение элементов массивов одинаковой размерности. |
| / | Деление скаляра на скаляр; покомпонентное деление всех элементов массива на скаляр; A/B=A*B-1 (A, B – квадратные матрицы одного порядка). |
| ./ | Покомпонентное деление элементов массивов одинаковой размерности. |
| \ | A\B=A-1*B (левое матричное деление, A – квадратная матрица). |
| .\ | A.\B – покомпонентное деление элементов B на A (левое поэлементное деление). |
| ^ | Возведение скаляра в любую степень; вычисление целой степени квадратной матрицы. |
| .^ | Покомпонентное возведение в степень элементов массива. |
| ‘ | Вычисление сопряженной матрицы. |
| .’ | Транспонирование матрицы. |
| Логические операции | |
| Логическое умножение скаляров; логическое покомпонентное умножение массивов одинаковой размерности; логическое умножение массива на скаляр. | |
| | | Логическое сложение скаляров; логическое покомпонентное сложение массивов одинаковой размерности; логическое сложение массива со скаляром. |
| ~ | Логическое отрицание скаляра или всех элементов массива. |
| Операции отношения (операции сравнения) | |
| = = | Проверка на равенство. |
| ~= | Проверка на неравенство. |
| Проверка на «больше». | |
| = | Проверка на «больше или равно». |
| Проверка на «меньше». | |
| Проверка на «меньше или равно». |
массива (т.е. добавляемая скалярная величина, по сути, преобразуется в массив той же размерности, что и первое слагаемое (это своего рода аналог приведения типов в выражениях с «разнокалиберными» операндами) и каждый элемент такого сформированного массива равен исходной скалярной величине). Тем не менее, всякая попытка сложить массивы разной размерности (за исключением случая, когда один из операндов – массив размерности 1х1) приводит к соответствующему сообщению об ошибке. Аналогичное приведение типов выполняется для большинства операций, когда одним из операндов является массив, а вторым – скаляр.
Заметим, что исторически впервые знак операции возведения в степень в виде x**y появился в языке программирования FORTRAN в 1954 году. Вертикальная стрелкав качестве обозначения операции возведения в степень была предложена несколько лет спусти при разработке языка Algol 58. Символ ^ для обозначения операции возведения в степень использовался в языке программирования Basic, а позднее он же стал использоваться в MATLAB. С сожалением приходится констатировать, что такие популярные языки программирования как C и Pascal даже не включили операцию возведения в степень в набор элементарных действий (для соответствующих целей приходится использовать специальные библиотечные функции).
