Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Glava_3_MATLAB.doc
Скачиваний:
28
Добавлен:
24.11.2018
Размер:
3.32 Mб
Скачать

3.2.4 Массивы в matlab

Для ввода массивов (векторов или матриц) их элементы заключают в квадратные скобки.

Пример 3-2. Требуется ввести вектор-строку размером 1×4.

Для решения используется команда, в которой элементы строки отделяются пробелами или запятыми:

Инструкция

Результат

% элементы строки отделяются пробелами:

>> z=[5 6 7 8]

% элементы строки отделяются запятыми:

>> z=[5,6,7,8]

z =

5 6 7 8

Пример 3-3. Требуется ввести вектор-столбец размером 1×4. При вводе вектора-столбца элементы разделяют точкой с запятой.

Инструкция

Результат

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

z =

5

6

7

8

Пример 3-4. Требуется ввести матрицу размером 2×3. Вводить небольшие по размеру матрицы удобно прямо из командной строки.

Инструкция

Результат

>> А=[1 2 3; 4 5 6]

А =

1 2 3

4 5 6

Матрицы и векторы можно создавать из ранее заданных матриц и векторов.

Пример 3-5. Требуется получить вектор-строку U из векторов-строк u1, u2, u3.

Инструкция

Результат

>> u1=[1 2 3];

>> u2=[1 2 3];

>> u3=[1 2 3];

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

>> U=[u1 u2 u3]

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

>> U=[u1; u2; u3]

U =

1 2 3 1 2 3 1 2 3

U =

1 2 3

1 2 3

1 2 3

Особую роль при работе с матрицами играет знак двоеточие.

Пример 3-6. Требуется получить из матрицы M третий столбец, вторую строку.

Инструкция

Результат

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

М = 1 2 3

4 5 6

7 8 9

>> %Выделение из матрицы М второй строки

>> М(2 , : )

>> %Выделение из матрицы М третьего столбца

>> М( : , 3)

ans =

4 5 6

ans =

3

6

9


Пример 3-7. Требуется удалить из матрицы М третий столбец, вторую строку.

Инструкция

Результат

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

М = 1 2 3

4 5 6

7 8 9

>> %Удаление из матрицы М второй строки

>> М(2 , : ) = []

>> %Выделение из матрицы М третьего столбца

>> М( : , 3) = []

M =

1 2 3

7 8 9

M =

1 2

7 8


3.2.5 Основные матричные операции

Для выполнения операций над массивами в Matlab служат арифметические операции, перечень которых приведен ниже.

Функция

(имя)

Оператор

(символ)

Синтаксис

Выполняемое действие

plus

+

А1+А2

Поэлементное сложение

minus

-

А1 – А2

Поэлементное вычитание

times

.*

А1 .* А2

Поэлементное умножение

rdivide

. /

А1./А2

Поэлементное деление массивов слева направо

ldivide

.\

А1.\А2

Поэлементное деление массивов справа налево

power

.^

A .^x

Поэлементное возведение массива в степень

При записи инструкций можно применять как символьные операторы арифметических операций, так и функции.

Пример 3-5. Требуется умножить элементы массива размерностью 2 х 2 на число 3.

Решение задачи выполним двумя способами – используя оператор .*, и с помощью функции times. Решение приведено ниже:

Инструкция

Результаты вычислений

% инструкция с символьным оператором

>> А=[1 2 3; 1 2 3];

>> В=z.*2

% инструкция, использующая функцию

>> A=[1 2 3; 1 2 3];

>>B=times(A,2)

B =

2 4 6

2 4 6

Для работы с векторами и матрицами в Matlab существуют специальные функции.

Функция

Описание

Функции операций над векторами

length(U)

Определяет длину вектора U

sum(U)

Вычисляет сумму элементов вектора U

min(U)

Находит минимальный элемент вектора U, вызов в формате [m, n] =min(U) дает возможность определить минимальный элемент m и его номер n в массиве U

max(U)

Находит максимальный элемент вектора U, вызов в формате [m, n] =max(U) дает возможность определить максимальный элемент m и его номер n в массиве U

dot(u1,u2)

Вычисляет скалярное произведение векторов u1 и u2

Функции операций над матрицами

eye(n[,m])

Возвращает единичную матрицу указанной размерности

size(A)

Определяет размерность матрицы А, результатом является вектор [n;m]

det(A)

Вычисляет определитель квадратной матрицы А

trace(A)

Вычисляет сумму элементов главной диагонали

inv(A)

Возвращает матрицу, обратную А

linsolve(A,b)

Возвращает решение системы линейных уравнений Аx = b

Рассмотрим использование некоторых функций на примерах:

Инструкция

Результаты вычислений

>>% определим длину вектора U

>> U=[2 4 6 1 8 3 9];

>> length(U)

ans =

7

>>% вычислим сумму элементов вектора U

>> sum(U)

ans =

33

>>% найдем минимальный элемент (m) вектора U и определим его номер (n) в массиве U

>> [m, n] =min(U)

m =

1

n =

4

>>% вычислим скалярное произведение векторов u1 и u2

>> u1=[1 2 1 2];

>> u2=[2 1 2 1];

>> dot(u1,u2)

ans =

8

>>% зададим единичную матрицу А размерности 33

>> A=eye(3,3)

A =

1 0 0

0 1 0

0 0 1

>>% определим размерность матрицы А

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

>> size(A)

ans =

2 3

>>% вычислим определитель матрицы А

>> A=[1 2 3 ; 2 3 4;3 4 5];

>> det(A)

ans =

0

>>% вычислим сумму элементов главной диагонали матрицы А

>> A=[1 2 3 ; 2 3 4;3 4 5];

>> trace(A)

ans =

9

>>% вычислим матрицу, обратную А

>> A=[1 2 3; 0 3 2;2 1 0];

>> B=inv(A)

>>% проверка

>> A*B

B =

0.1667 -0.2500 0.4167

-0.3333 0.5000 0.1667

0.5000 -0.2500 -0.2500

ans =

1 0 0

0 1 0

0 0 1

Пример 3-6. Требуется решить систему линейных уравнений

Инструкция

Результаты вычислений

>> %Решение

>> А=[2 1 -1; 3 -2 1; 2 3 -2];

>> b=[0; 2; 1];

>> x=linsolve(a,b)

>> %Проверка

>> a*x

x =

1.0000

3.0000

5.0000

ans =

0.0000

2.0000

1.0000

Задание 3-1. Решите системы линейных уравнений

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]