cat(направление, матрица_1, матрица_2,…,матрица_n)
Параметр направление может принимать значение 1, что соответствует
объединению по вертикали, 2 – горизонтали, 3 – объединить вдоль третьей
оси.
Пример 27. Объединение матриц по горизонтали
clear, clc
% Задание матриц
M1=[1 2; 3 4], M2=[5 6 7; 8 9 10]
% Объединение по горизонтали с помощью
% квадратных скобок
[M1 M2]
% Объединение по горизонтали с помощью функции cat
cat(2,M1,M2)
Пример 28. Объединение матриц по вертикали
clear, clc
% Задание матриц
22
M3=[1 2 3], M4=[5 6 7; 8 9 10]
% Объединение по горизонтали с помощью
% квадратных скобок
[M3; M4]
% Объединение по горизонтали с помощью функции cat
cat(1,M3,M4)
Пример 29. Объединение матриц вдоль третьей оси
clear, clc
% Задание матриц
M5=[1 2; 3 4], M6=[5 6; 8 9]
% Сложение в «стопку» с помощью функции cat
cat(3,M5,M6)
С помощью функции inv и операции возведения в степень -1 можно
найти обратную матрицу.
Пример 30. Нахождение обратной матрицы
A=[1 2; 0 2]
inv(A)
A^(-1)
Часто используемые матричные функции
Рассмотрим некоторые часто применяемые матричные функции,
такие как sum, prod, diag, fliplr, rot90, reshape, repmat,
blkdiag.
Пример 31. Сумма по столбцам
clear
clc
A=[1 2; 3 4]
sum(A)
При исполнении примера #31, получим результат – два числа 4 и 6, что
соответствует суммам элементов в столбцах. Чтобы получить суммирование
23
по строкам, необходимо указать второй параметр в функции sum, а именно
2.
Пример 32. Сумма по строкам
clear, clc
A=[1 2; 3 4]
sum(A,2)
Пример 33. Сумма всех элементов матрицы
clear, clc
A=[1 2; 3 4]
sum(sum(A))
Чтобы найти произведение элементов матрицы, используйте функцию prod.
Пример 34. Произведение элементов матрицы
clear, clc
A=[1 2; 3 4]
prod(A)
prod(A,2)
prod(prod(A))
Функция diag позволяет выделить диагонали матрицы, если аргумент
функции – матрица, либо построить матрицу с заданной диагональю, если
аргумент - вектор.
Пример 35. Выделение диагоналей матрицы
clear, clc
A=[1 2 3; 1 2 3; 1 2 3]
% Выделение главной диагонали
diag(A)
% Выделение побочной диагонали, расположенной ниже
главной
diag(A,-1)
% Выделение побочной диагонали, расположенной выше
главной
diag(A,1)
24
Пример 36. Построение матрицы на основе заданной диагонали
clear, clc
d1=[1 2 3]
% элементы d1 будут располагаться на главной диагонали
diag(d1)
% элементы d1 будут располагаться ниже
% главной диагонали
diag(d1(2:3),-1)
% элементы d1 будут располагаться выше
% главной диагонали
diag(d1(2:3),1)
Функции fliplr и rot90 позволяют отражать и поворачивать векторы и
матрицы. Покажем их работу на примере.
Пример 37. Функции fliplr и rot90
clc, clear
d1=[1 2 3],d2=[11 12 13]
rot90(d1)
fliplr(d2)
a1=[10 2 3; 40 5 6; 70 8 9]
fliplr(a1)
a2=[10 20 30; 4 5 6; 7 8 9]
rot90(a2)
С помощью функции reshape можно изменить форму – размерность
массива, количество элементов массива при этом остается неизменным.
Пример 38. Функция reshape
clc, clear
d=1:12
size(d)
d=reshape(d,3,4)
size(d)
d=reshape(d,4,[])
size(d)
25
d=reshape(d,12,1)
size(d)
Функция repmat позволяет задавать новую матрицу с помощью реплициро-
вания (повторения) исходной матрицы в соответствии с заданной размерно-
стью.
Пример 39. Функция repmat
d=1:3
d1=repmat(d,2), d2=repmat(d,2,3)
С помощью функции blkdiag выполняют построение блочно-диагональных
матриц, а с помощью функции spy можно отобразить структуру матрицы, её
ненулевые элементы.
Пример 40. Функция blkdiag
clc, clear
m1=[1 2; 3 4], m2=[10 20 30; 40 50 60],
m3=[2 4 6; 1 3 7; 5 4 3]
% Формирование блочно-диагональной матрицы
m=blkdiag(m1,m2,m3)
% Визуализация структуры матрицы
spy(m)
В некоторых примерах, приведенных выше, использовалась функция size,
возвращающая количество строк и количество столбцов объекта. Функция
Достарыңызбен бөлісу: |