Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 2 Информационное обеспечение и компьютерные технологии в научной деятельности.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.42 Mб
Скачать
      1. Векторы и матрицы

Система MATLAB предназначена для проведения сложных вычислений с векторами, матрицами и многомерными массивами, при этом каждая заданная переменная рассматривается как вектор, матрица или массив.

Для того чтобы задать вектор, необходимо в командной строке ввести имя вектора, оператор присваивания =, открывающую квадратную скобку [, после чего указать значения элементов вектора через пробел или запятые, ввести закрывающуюся квадратную скобку].

Язык MATLAB дает пользователю возможность сокращенного введения вектора, значения элементов которого составляют арифметическую прогрессию. Если обозначить: nz - начальное значение этой прогрессии (значение первого элемента вектора); kz - конечное значение прогрессии (значение последнего элемента вектора); h - разность прогрессии (шаг), то вектор можно ввести с помощью короткой записи V = nz : h : kz.

Для задания матрицы требуется указать ее строки, разграничивая их знаком ;(точка с запятой).

Элементами векторов и матриц могут служить арифметические выражения, содержащие любые доступные системе функции.

Рассмотрим основные приёмы работы с векторами и матрицами на примерах:

>> A=[1 2 4 8 16]

A =

1 2 4 8 16

>> d=6.1:0.3:8.3;

>> d

d =

6.1000 6.4000 6.7000 7.0000 7.3000 7.6000 7.9000 8.2000

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

A =

1 2 3

4 5 6

7 8 9

>> a=[10^2 tan(pi/4) log10(100)]

a =

100.0000 1.0000 2.0000

>> A(8)

ans =

6

>> A(2,3)

ans =

6

>> A(2,3)=100

A =

1 2 3

4 5 100

7 8 9

>> A(3:6)

ans =

7 2 5 8

>> B=[A(1) A(4) A(9)]

B =

1 2 9

>> C=[A(1);A(4);A(9)]

C =

1

2

9

>> A(1)+A(4)+A(9)

ans =

12

>> sum(A)

ans =

12 15 112

>> sum(A')

ans =

6 109 24

Следует заметить, что в тексте программ рекомендуется не использовать как индексы символы i и j (обозначение мнимой единицы).

Для выделения отдельной строки или столбца используются круглые скобки и двоеточие, а для удаления - пустые квадратные скобки:

>> A=[2 5 8;30 21 5;12 9 6]

A =

2 5 8

30 21 5

12 9 6

>> A(:,2)

ans =

5

21

9

>> A(:,2)=[]

A =

2 8

30 5

12 6

>> A(2,:)

ans =

30 5

>> A(2,:)=[]

A =

2 8

12 6

Матрицы с одинаковым числом строк или одинаковым числом столбцов можно объединять (не складывать!) в одну “строку” или в один “столбец”. Такая операция называется горизонтальной или вертикальной конкатенацией матриц. При этом получается матрица большей размерности. Операция может задаваться двумя способами, как показано ниже.

Горизонтальная конкатенация

>> A1=[7;4;3];A2=[2 4 5;1 6 9;0 7 4]; A3=[98 -9;31 6;81 100];

>> A=[A1 A2 A3]

A =

7 2 4 5 98 -9

4 1 6 9 31 6

3 0 7 4 81 100

или с помощью оператора

>> cat(2,A1,A2,A3)

ans =

7 2 4 5 98 -9

4 1 6 9 31 6

3 0 7 4 81 100

Вертикальная конкатенация:

>> B1=[2 3];B2=[1 4;0 7;8 9];

>> B=[B1;B2]

B =

2 3

1 4

0 7

8 9

или с помощью оператора

>> cat(1,B1,B2)

ans =

2 3

1 4

0 7

8 9

Можно заменить один фрагмент матрицы на другой, для чего необходимо указать номера заменяемых строк и столбцов:

>> A=[11 12 13 14 15 16; 21 22 23 24 25 26; 31 32 33 34 35 36]

A =

11 12 13 14 15 16

21 22 23 24 25 26

31 32 33 34 35 36

>> B=[10 20; 30 40]

B =

10 20

30 40

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

C =

24 25

34 35

>> A(2:3, 4:5)= B

A =

11 12 13 14 15 16

21 22 23 10 20 26

31 32 33 30 40 36

Формировать новые матрицы можно путём перестановки строк или столбцов относительно горизонтальной или вертикальной осей, а также путём поворота заданной матрицы против часовой стрелки на угол 90 с помощью следующих операторов.

>> A=[11 12 13 14; 21 22 23 24; 31 32 33 34]

A =

11 12 13 14

21 22 23 24

31 32 33 34

Перестановка слева направо:

>> fliplr(A)

ans =

14 13 12 11

24 23 22 21

34 33 32 31

Перестановка снизу вверх

>> flipud(A)

ans =

31 32 33 34

21 22 23 24

11 12 13 14

Поворот

>> rot90(A)

ans =

14 24 34

13 23 33

12 22 32

11 21 31

Размерность матрицы можно узнать и изменить с помощью следующих операторов

>> size(A)

ans =

3 4

>> B = reshape(A,2,6)

B =

11 31 22 13 33 24

21 12 32 23 14 34

>> size(B)

ans =

2 6

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