Набор арифметических операций в MATLAB состоит из стандартных операций сложения-вычитания, умножения-деления, операции возведения в степень и дополнены специальными матричными операциями [1 - 3]. Если операция применяется к матрицам, размеры которых не согласованы, то будет выведено сообщение об ошибке. Для поэлементного выполнения операций умножения, деления и возведения в степень применяются комбинированные знаки (точка и знак операции). Например, если за матрицей стоит знак (^), то она возводится в степень, а комбинация (.^) означает возведение в степень каждого элемента матрицы. При умножении (сложении, вычитании, делении) матрицы на число соответствующая операция всегда производится поэлементно. В табл. 1.5 указаны знаки арифметических операций.
Таблица 1.5
Символ | Назначение |
+,- | Символы плюс и минус обозначают знак числа или операцию сложения и вычитания матриц, причем матрицы должны быть одной размерности |
* | Знак умножения обозначает матричное умножение; для поэлементного умножения матрицы применяется комбинированный знак (.*) |
‘ | Апостроф обозначает операцию транспонирования (вместе с комплексным сопряжением); транспонирование без вычисления сопряжения обозначается при помощи комбинированного знака (.‘) |
/ | Левое деление |
\ | Правое деление |
^ | Оператор возведения в степень; для поэлементного возведения в степень применяется комбинированный знак (.^) |
Проиллюстрируем различие обычного и поэлементного умножений при помощи следующего примера. Введём матрицу X размера 2х2 и матрицу A из единиц той же размерности:
|
|
>> X=[0 3; 1 0], A=ones(size(X))
X =
0 3
1 0
A =
1 1
1 1
Перемножим матрицы, используя обычное умножение:
>> X*A
ans =
2 3
1 1
Теперь применим поэлементную операцию:
>> X.*A
ans =
0 3
1 0
Понятно, что при поэлементном умножении вектора a=[7,2,4] на себя или при поэлементном возведении в квадрат результат получится одинаковым: [49 4 16]. Образуем матрицу умножением вектора столбца, полученного транспонированием из строки, на исходный вектор-строку:
>> L=a'*a
L =
49 14 28
14 4 8
28 8 16
Прибавим к матрице L единичную матрицу той же размерности, умноженную на комплексное число pi+i, и вычтем из полученного результата число 4,полученый результат умножим на 1.5:
>> D=(L+(pi+i)*eye(size(L))-4)*1.5
D =
72.2124 + 1.5000i 15.0000 36.0000
15.0000 4.7124 + 1.5000i 6.0000
36.0000 6.0000 22.7124 + 1.5000i
Для вычитания числа из матрицы оно заменяется матрицей нужного размера, все элементы которой равны данному числу, а уже затем вычисляется разность матриц. Если при сложении и умножении размеры матриц не соответствуют, то будет выведено сообщение об ошибке. Например:
|
|
>> ones(2)*eye(3)
??? Error using ==> *