Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МАТЛАБ 1 - матрицы (дополн. Интер).doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
143 Кб
Скачать
☆

Создание новых векторов и матриц на основе имеющихся.

Вектор можно задать также путём объединения нескольких векторов.

Например, даны три вектора 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 =

Результат – вектор-столбец, состоящий из элементов, расположенных на главной диагонали. Иными словами, при использовании этой функции, если параметром является матрица, результатом будет вектор, а если параметр – вектор, результат – матрица.

ПРИМЕРЫ

  1. Выделение элементов из матриц

>> 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

  1. Выделение подматриц из исходных матриц

    1. Из матрицы A выделить второй столбец

>> r = A(1:5,2)

r =

12

4

8

9

1

    1. Из матрицы А выделить третью строку

>> r2=A(3,:)

r2 =

9 8 7 2 3

3.3 Из матрицы А выделить подстолбец четвертого столбца с номером строки от 2 до 4.

>> r3=A(2:4,4)

r3 =

8

2

7

    1. Из матрицы А выделить подстроку номер 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