И другие программы этой серии
Введём матрицу H размера 2х2 и матрицу O из единиц той же размерности:
>> H=[0 1; 2 3], O=ones(size(H))
H =
0 1
2 3
O =
1 1
1 1
Перемножим матрицы, используя обычное умножение:
>> H*O
ans =
1 1
5 5
Теперь применим поэлементную операцию:
>> H.*O
ans =
0 1
2 3
Понятно, что при поэлементном умножении вектора b=[1,2,3] на себя или при поэлементном возведении в квадрат результат получится одинаковым: [1 4 9]. Образуем матрицу умножением вектора столбца, полученного транспонированием из строки, на исходный вектор-строку:
>> C=b\'*b
C =
1 2 3
2 4 6
3 6 9
Прибавим к матрице С единичную матрицу той же размерности, умноженную на комплексное число p+i, и вычтем из полученного результата число 2:
>> D=C+(pi+i)*eye(size(C))-2
D =
2.1416 + 1.0000i 0 1.0000
0 5.1416 + 1.0000i 4.0000
1.0000 4.0000 10.1416 + 1.0000i
Для вычитания числа из матрицы оно заменяется матрицей нужного размера, все элементы которой равны данному числу, а уже затем вычисляется разность матриц. Операция транспонирования для матрицы D дает следующий результат:
>> D\'
ans =
2.1416 - 1.0000i 0 1.0000
0 5.1416 - 1.0000i 4.0000
1.0000 4.0000 10.1416 - 1.0000i
Если при сложении и умножении размеры матриц не соответствуют, то будет выведено сообщение об ошибке. Например:
>> ones(2)*eye(3)
??? Error using ==> *
Inner matrix dimensions must agree.
Матричное левое деление может быть пояснено на примере системы линейных алгебраических уравнений Ах=B. Для ее решения достаточно набрать х=A\\b. Соответственно для системы хА=b будет получено решение (если оно есть) при помощи операции правого деления x=b/A.