- •Лабораторная работа 1
- •Матрицы и векторы
- •Задание
- •Пояснения и примеры http://helpiks.Org/7-65390.Html Задание векторов и матриц. Деление (правое и левое) http://helpiks.Org/7-65391.Html Создание новых векторов и матриц на основе имеющихся.
- •Создание новых векторов и матриц на основе имеющихся.
- •5. Умножение и деление матриц
- •6. Степени матрицы
- •8. Операции с матрицами
- •9 Специальные матрицы
Создание новых векторов и матриц на основе имеющихся.
Вектор можно задать также путём объединения нескольких векторов.
Например, даны три вектора A, B, C, получить вектор D:
>>A=[1 2 3]; B=[4 5 6]; C=[7 8 9]; D=[A B C]
D =
1 2 3 4 5 6 7 8 9
Элементы имеющегося массива могут быть использованы при создании нового вектора. Например,
>> A=[1 2 3];
>> B=[5,6,9];
>> C=[A(2),B(3),B(1),A(1)]
C =
2 9 5 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
Размеры матриц должны быть согласованы.
Кроме того, имеется специальная функция cat для конкатенации (присоединения, сцепления) матриц. Для горизонтального объединения следует записать cat(2,X,Y), а для вертикальной cat(1,X,Y),
В MATLAB можно выделить отдельные фрагменты векторов или матриц. Для этого используются индексация с помощью двоеточия(операция :).
Например,
Из вектора D [1 2 3 4 5 6 7 8 9] получить вектор, содержащий элементы исходного вектора с номера 4 до номера 8.
>> F=D(4:8)
F =
4 5 6 7 8
Пусть имеем матрицу X
>> X=[3 5 8;4 1 9;2 8 3]
X =
3 5 8
4 1 9
2 8 3
Получить новую матрицу Y вырезкой из элементов матрицы X, начиная с элемента X(1,2) до X(3,3)
>> Y=X(1:3, 2:3)
Y =
5 8
1 9
8 3
Можно заменить один фрагмент матрицы другим.
X =
3 5 8
4 1 9
2 8 3
>> Z=[10 20; 30 40]
Z =
10 20
30 40
>> X(1:2,2:3)=Z
X =
3 10 20
4 30 40
2 8 3
Аналогично можно вставить фрагмент Z в верхний левый угол:
>> X(1:2,1:2)=Z
X =
10 20 20
30 40 40
2 8 3
Очень просто удалить, например, какой-либо столбец или строку в матрице.
Удалим 2-й столбец матрицы X. Для этого присвоим второму столбцу пустой массив.
>> X(:,2)=[] % Обращение X(:,2) означает – все эл-ты 2-ГО столбца
X =
3 20
4 40
2 3
Если бы для матрицы X
X =
3 10 20
4 30 40
2 8 3
потребовалось бы удалить, например, 2-ю и 3-ю строки, то надо записать:
>> X(2:3,:)=[]
X =
3 10 20
Пусть необходимо в матрице A 5х5 , состоящей из нулей, заменить значением -1, например, элементы последней строки с третьего до последнего столбца. Можно матрицу из 0 составить при помощи индексации: A(1:5,1:5)=0, но лучше так:
>> A=zeros(5)
A =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
Замену элементов последней строки можно задать в виде
>> A(end, 3:end)=-1
A =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 -1 -1 -1
Диагональная матрица. Это матрица, у которой недиагональные элементы не нулевые. Чтобы получить диагональную матрицу, необходимо задать вектор, количество элементов которого определит размер матрицы. Это может быть как вектор-столбец, так и вектор-строка. Значения вектора расположатся на главной диагонали:
>> Z=[1;2;3;4];
>> D=diag(Z)
D =
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4
>> B=[1 2 3 4];
>> C=diag(B)
C =
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4
Этой же функцией можно выделение диагонали из матрицы:
>> diag(C)
ans =
Результат – вектор-столбец, состоящий из элементов, расположенных на главной диагонали. Иными словами, при использовании этой функции, если параметром является матрица, результатом будет вектор, а если параметр – вектор, результат – матрица.
ПРИМЕРЫ
Выделение элементов из матриц
>> h=A(3,4)
>> hA=A(3,4)
hA =
2
>> hb=B(2,3)
hb =
44
>> hc=C(3,2)
hc =
22
>> hd=D(3)
hd =
21
>> he=E(4)
he =
12
Выделение подматриц из исходных матриц
Из матрицы A выделить второй столбец
>> r = A(1:5,2)
r =
12
4
8
9
1
Из матрицы А выделить третью строку
>> r2=A(3,:)
r2 =
9 8 7 2 3
3.3 Из матрицы А выделить подстолбец четвертого столбца с номером строки от 2 до 4.
>> r3=A(2:4,4)
r3 =
8
2
7
Из матрицы А выделить подстроку номер 4 с номерами столбцов
от 2 до 5.
>> r4=A(4,2:5)
r4 =
9 9 7 6
3.5 Из матрицы А выделить подматрицу с номерами строк от 2 до 4 и номерами столбцов от 3 до 5.
>> r5=A(2:4,3:5)
r5 =
6 8 11
7 2 3
9 7 6
3.6. Из матрицы А вычеркнуть 3-ю строку
Исходная
A =
34 12 3 5 1
2 4 6 8 11
9 8 7 2 3
9 9 9 7 6
0 1 3 5 6
>> A(3,:)=[ ]
A =
34 12 3 5 1
2 4 6 8 11
9 9 9 7 6
0 1 3 5 6
3.7 . Из матрицы А вычеркнуть 2-й столбец
>> A(:,2)=[]
3.8. Из матрицы А вычеркнуть второй и третий столбец
>> A(:,2:3)=[]
3.9. Из матрицы А вычеркнуть 2 и 3-ю строку
>> A(2:3,:)=[]
4. Объединение матриц
4.1. Вертикальное объединение матриц A,C,E в различных вариантах
A =
34 12 3 5 1 2 4 6 8 11 9 8 7 2 3 9 9 9 7 6 0 1 3 5 6
|
C =
6 5 4 9 8 7 11 22 33 21 32 43 65 43 21
|
E =
43 65 87 12 32
|
F=[A,C]
F =
34 12 3 5 1 6 5 4
2 4 6 8 11 9 8 7
9 8 7 2 3 11 22 33
9 9 9 7 6 21 32 43
0 1 3 5 6 65 43 21
>> [A,C,E]
ans =
34 12 3 5 1 6 5 4 43
2 4 6 8 11 9 8 7 65
9 8 7 2 3 11 22 33 87
9 9 9 7 6 21 32 43 12
0 1 3 5 6 65 43 21 32
>> [E,C,A]
ans =
43 6 5 4 34 12 3 5 1
65 9 8 7 2 4 6 8 11
87 11 22 33 9 8 7 2 3
12 21 32 43 9 9 9 7 6
32 65 43 21 0 1 3 5 6
>> [E,A,C]
ans =
43 34 12 3 5 1 6 5 4
65 2 4 6 8 11 9 8 7
87 9 8 7 2 3 11 22 33
12 9 9 9 7 6 21 32 43
32 0 1 3 5 6 65 43 21
4.2. Горизонтальное объединение матриц A, B, D
A =
34 12 3 5 1 2 4 6 8 11 9 8 7 2 3 9 9 9 7 6 0 1 3 5 6
|
B =
4 5 6 7 8 99 65 44 23 1 9 9 7 7 4
|
D =
34 23 21 65 34
|
>> [A;B;D]
ans =
34 12 3 5 1
2 4 6 8 11
9 8 7 2 3
9 9 9 7 6
0 1 3 5 6
4 5 6 7 8
99 65 44 3 1
9 9 7 7 4
34 23 21 65 34
>> [B;D;A]
ans =
4 5 6 7 8
99 65 44 23 1
9 9 7 7 4
34 23 21 65 34
34 12 3 5 1
2 4 6 8 11
9 8 7 2 3
9 9 9 7 6
0 1 3 5 6
>> [D;A;B]
ans =
34 23 21 65 34
34 12 3 5 1
2 4 6 8 11
9 8 7 2 3
9 9 9 7 6
0 1 3 5 6
4 5 6 7 8
99 65 44 23 1
9 9 7 7 4
