Функции для создания стандартных матриц

Функция Результат и примеры вызовов
zeros Нулевая матрица F=zeros(4,5) F=zeros(3) F=zeros([3 4])
eye Единичная прямоугольная матрица (единицы расположены на главной диагонали) I=eye(5,8) I=eye(5) I=eye([5 8])
ones Матрица, целиком состоящая из единиц E=ones(3,5) E=ones(6) E=ones([2 5])
rand Матрица, элементы которой — случайные числа, равномерно распределенные на интервале (0,1) R=rand(5,7) R=rand(6) R=rand([3 5])
randn Матрица, элементы которой — случайные числа, распределенные по нормальному закону с нулевым средним и дисперсией равной единице N=randn(5,3) N=randn(9) N=randn([2 4])
diag 1) диагональная матрица, элементы которой задаются во входном аргументе — векторе D=diag(v) 2) диагональная матрица со смещенной на k позиций диагональю (положительные k — смещение вверх, отрицательные — вниз), результатом является квадратная матрица размера length(v)+abs(k) D=diag(v,k) 3) выделение главной диагонали из матрицы в вектор d=diag(A) 4) выделение k-ой диагонали из матрицы в вектор d=diag(A,k)

В предыдущем параграфе было описано применение поэлементных операций к векторам. Поэлементные вычисления с матрицами производятся практически аналогично, разумеется, необходимо следить за совпадением размеров матриц:

A.*B, A./B— поэлементные умножение и деление;

A.^p — поэлементное возведение в степень, p — число;

A.^B — возведение элементов матрицы A в степени, равные соответствующим элементам матрицы B;

A.' — транспонирование матрицы (для вещественных матриц A' и A.' приводят к одинаковым результатам);

Иногда требуется не просто транспонировать матрицу, но и "развернуть" ее. Разворот матрицы на 90o против часовой стрелки осуществляет функция rot90:

>> Q=[1 2;3 4]

Q =

1 2

3 4

>> R=rot90(Q)

R =

2 4

1 3

Допустимо записывать сумму и разность матрицы и числа, при этом сложение или вычитание применяется, соответственно, ко всем элементам матрицы. Вызов математической функции от матрицы приводит к матрице того же размера, на соответствующих позициях которой стоят значения функции от элементов исходной матрицы.

В MatLab определены и матричные функции, например, sqrtm предназначена для вычисления квадратного корня. Найдите квадратный корень из матрицы

и проверьте полученный результат, возведя его в квадрат (по правилу матричного умножения, а не поэлементно!):

>> K=[3 2; 1 4];

>> S=sqrtm(K)

S =

1.6882 0.5479

0.2740 1.9621

>> S*S

ans =

3.0000 2.0000

1.0000 4.0000

Матричная экспонента вычисляется с использованием expm. Специальная функция funm служит для вычисления произвольной матричной функции.

Все функции обработки данных, приведенные в табл. 2.1, могут быть применены и к двумерным массивам. Основное отличие от обработки векторных данных состоит в том, что эти функции работают с двумерными массивами по столбцам, например, функция sum суммирует элементы каждого из столбцов и возвращает вектор-строку, длина которой равна числу столбцов исходной матрицы:

>> M=[1 2 3; 4 5 6; 7 8 9]

M =

1 2 3

4 5 6

7 8 9

>> s=sum(M)

s =

12 15 18

Если в качестве второго входного аргумента sum указать 2, то суммирование произойдет по строкам. Для вычисления суммы всех элементов матрицы требуется дважды применить sum:

>> s=sum(sum(M))

s =

Очень удобной возможностью MatLab является конструирование матрицы из матриц меньших размеров. Пусть заданы матрицы:

Требуется составить из , , и блочную матрицу

Можно считать, что имеет размеры два на два, а каждый элемент является, соответственно, матрицей , , или . Следовательно, для получения в рабочей среде MatLab массива M с матрицей требуется использовать оператор:

>> M=[M1 M2; M3 M4]


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: