
5. Операции над матрицами, операции над элементами матриц.
MATLAB поддерживает операции над матрицами, перечисленные в таблице 2. Размер матриц для выполнения указанных операций должен удовлетворять правилам, излучавшимся в курсе линейной алгебры. При несоответствии размеров матриц MATLAB будет выдавать сообщение об ошибке.
Таблица 2. Операции над матрицами. |
|
Операция |
Описание |
A + B |
Сумма двух матриц. |
А – B |
Разность двух матриц. |
a * B B * a |
Произведение числа a и матрицы B. |
A * B |
Произведение двух матриц. |
A.' transpose (A) |
Транспонирование матрицы А. |
A' ctranspose (A) |
Комплексное транспонирование матрицы А. Элементы транспонированной матрицы заменяются на комплексно-сопряженные числа. |
inv(A) |
Вычисление обратной матрицы. |
A/B |
Матричное деление. Результат вычисляется по формуле A/B = A * inv(B) |
A\B |
Левое матричное деление. Результат вычисляется по формуле A\B = inv(A)*B |
inv(A) |
Вычисление обратной матрицы. |
rank(A) |
Ранг матрицы. |
trace (A) |
След матрицы – сумма элементов на главной диагонали. |
Кроме того, можно осуществлять поэлементные операции над матрицами, перечисленные в таблице 3. В этих случаях MATLAB рассматривает операнды как массивы чисел и осуществляет операцию над элементами с совпадающими индексами. Для выполнения операций обе матрицы должны иметь один размер, либо один из операндов должен быть скаляром.
Обратите внимание, что запись обычных и поэлементных операций над матрицами отличается наличием дополнительной точки в формуле для операции.
Таблица 3. Поэлементные операции над матрицами. |
|
Операция |
Описание |
A .+ B |
Сумма A(i,j) + B(i,j). Результат совпадает с суммой матриц. |
А .- B |
Сумма A(i,j) - B(i,j). Результат совпадает с суммой матриц. |
A .* B |
Произведение элементов двух матриц A(i,j) * B(i,j). |
A ./ B |
Частное элементов двух матриц A(i,j) / B(i,j). |
A .^ B |
Степень: A(i,j) в степень B(i,j). |
sum (A) sum(A,1) |
Сумма элементов по каждому столбцу матрицы. Для вектора-строки операция вычисляет сумму всех элементов. |
sum (A,2) |
Сумма элементов в каждой строке матрицы. |
min (A) min (A,1) |
Минимальный элемент каждого столбца матрицы. Для вектора-строки операция вычисляет минимум из всех элементов. |
min (A,2) |
Минимальный элемент каждой строки матрицы. |
max (A) max (A,1) |
Максимальный элемент каждого столбца матрицы. Для вектора-строки операция вычисляет максимум из всех элементов. |
max (A,2) |
Максимальный элемент каждой строки матрицы. |
Для того, чтобы вычислить сумму всех элементов матрицы можно воспользоваться повторным вызовом функции sum. Аналогично, вычисляется минимум или максимум из всех элементов матрицы.
Пример 6.
>> A=[1 2 3; 4 5 6]
A =
1 2 3
4 5 6
>> sum(A)
ans =
5 7 9
>> sum(A,2)
ans =
6
15
>> sum(sum(A))
ans =
21
Упражнение 5.
Задайте четыре матрицы заданного размера со случайными целыми элементами со значениями от -5 до 5. Размеры матриц A (2 x 3), B (3 x 3), C (3 x 3), D (3 x 1).
Для всех матриц из пункта 1 найти их транспонированные матрицы.
Для всех возможных пар матриц из пункта 1 найти сумму, разность и произведение (если данные операции возможно). Разность и произведение необходимо вычислить с учетом различного порядка операндов, например B-C и С-В.
С помощью функции magic задать магический квадрат порядка 5. Вычислить суммы элементов в строках и столбцах полученной матрицы. Вычислить сумму элементов на главной диагонали матрицы. Убедится, что все суммы совпадают.