Специальные функции для матриц

 

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

det(A) – вычисляет определитель (детерминант) матрицы.

inv(A) – вычисляет инверсную (обратную) матрицу.

Обратнойдля квадратной невырожденной (когда детерминант не равен нулю) матрицы А называется матрица А-1, которая при умножении на матрицу А справа и слева даёт единичную матрицу. B называется обратной А, если выполняется АВ=ВА=Е (единичная матрица).

eig(A) – определение собственных чисел (характеристических чисел);

norm(A, 1) – норма матрицы – наибольшая сумма модулей элементов столбцов;

norm(A, inf) – наибольшая сумма модулей элементов строк;

trace(A) – след матрицы (сумма элементов главной диагонали).

Действия с элементами матрицы

Обращение к элементу осуществляется заданием имени, за которым в круглых скобках через запятую указываются индексы – номера строки и столбца. Если указать A(2,1), то выберется элемент второй строки первого столбца.

Можно выделить часть матрицы. Это делается с помощью символа двоеточие (:).

Пусть задана матрица:

 

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

A =

1 2 3

4 5 6

7 8 9

 

Если двоеточие стоит вместо номера строки или столбца, то соответственно выделяются столбец или строка.

Получим 3-й столбец матрицы А:

 

>> B=A(:,3)

B =

 

Получим 3-ю строку матрицы А:

 

>> X=A(3,:)

X =

7 8 9

Получим вектор-столбец из всех элементов матрицы:

 

>> C=A(:)

C =

 

Индексом в ML может быть не только число, но и вектор. Этот вектор-индекс удобно задавать с помощью двоеточия.

Для доступа к элементам последней строки или столбца можно использоватьв качестве индекса end.

Получим матрицу С, состоящую из элементов матрицы А, начиная со второго столбца:

 

>> C=A(:, 2:end)

C =

2 3

5 6

8 9

 

Поменяем местами первую и последнюю строки матрицы А:

 

>> D=A(1,:);

>> A(1,:)=A(end,:);

>> A(end,:)=D;

>> A

A =

7 8 9

4 5 6

1 2 3

 

Получим вектор С, состоящий из элементов первых трех элементов 2-го столбца матрицы А.

Пусть задана матрица:

 

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

A =

1 2 3

4 5 6

7 8 9

1 0 1

 

Запишем:

 

>> C=A(1:3, 2)

C=

 

Первый индекс представляет собой вектор из трех элементов [1:3], результат – вектор-столбец С.

Выделим из матрицы А квадратную матрицу С размером 2х2:

>> C=A(3:4,2:3)

Получим

 

C =

8 9

0 1

 

Выделим первые две строки матрицы А:

 

>>С=A(1:2,:)

С =

1 2 3

4 5 6

 

Можно заменить один фрагмент матрицы другим.

Пусть имеем матрицу А = [1 2 3;4 5 6; 7 8 9] и зададим матрицу С:

 

>> C=[20 30;10 15]

C =

20 30

10 15

 

Заменим правый верхний угол матрицы А матрицей С. Для этого запишем:

>> A(1:2,1:2)=C

Измененная матрица А

 

A =

20 30 3

10 15 6

7 8 9

 

Поменяем местами 1-ю и 3-ю строки матрицы А:

Используем для этого возможность задания индекса вектором.

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

Для этого запишем:

>> A([1 3],:)=A([3 1],:)

Полученная матрица:

 

A =

7 8 9

4 5 6

1 2 3

 

Обращение А([1 3], :) означает первую и третью строки матрицы; А([3 1], :) – аналогично третью и первую строки.

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

Сначала создадим матрицу из нулей размером 5×5. Затем заполним первую и последнюю строки и первый и последний столбцы единицами:

 

>> Z(1:5,1:5)=0;

>>Z(1, :)=1;

>>Z(end, :)=1;

>>Z(:, 1);)=1;

>>Z(:, end)=1

 

В результате получим матрицу Z:

 

Z =

1 1 1 1 1

1 0 0 0 1

1 0 0 0 1

1 0 0 0 1

1 1 1 1 1

или лучше:

 

>> Z([1 end], :)=1;

>> Z(: ,[1 end])=1

 

Можно выполнить объединение матриц:

X Y

Ø погоризонтали

 

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

>> Y=[5 6;7 8];

>> Z=[X,Y]

Z =

1 2 5 6

3 4 7 8

 

X
Y

Ø по вертикали

 

>> Z=[X;Y]

Z =

1 2

3 4

5 6

7 8

 

Размеры матриц должны быть согласованы.

Добавим строку к матрице А:

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

Зададим вектор В:

>> B=[5 5 5];

Запишем:

>> A=[A;B]

Получим новую матрицу размером 4×3:

 

A =

1 2 3

4 5 6

7 8 9

5 5 5

 

Удалим из матрицы 2-ю и 3-ю строки:

 

>> A(2:3, :)=[]

A =

1 2 3

5 5 5

Удалим из матрицы 2 столбец

 

>> A(:, 2)=[]

A =

1 3

5 5

Можно удалить элемент из матрицы.

A(3)=[] – удаление 3-го элемента матрицы.

 

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

A =

1 2 3

4 5 6

7 8 9

>> A(3)=[]

 

Результат – вектор А, состоящий из элементов матрицы в порядке следования по столбцам без элемента А(3,1):

 

A =

1 4 2 5 8 3 6 9

 

Сделаем матрицу нулевой размерности

 

>>А=[];

 

Удаление матрицы из памяти

 

>>clear A

 

 








Дата добавления: 2016-03-05; просмотров: 537;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.023 сек.