Формирование векторов и матриц. Особенности задания векторов и матриц.
Описанные выше простые правила вычислений распространяются и на гораздо более сложные вычисления, которые (при использовании обычных языков программирования типа Бейсик или Паскаль) требуют составления специальных программ. MATLAB – система, специально предназначенная для проведения сложных вычислений с векторами, матрицами и массивами. При этом она по умолчанию предполагает, что каждая заданная переменная – это вектор, матрица или массив. Все определяется конкретным значением переменной. Например, если задано Х=1, то это значит, что X – это вектор с единственным элементом, имеющим значение 1. Если надо задать вектор из трех элементов, то их значения следует перечислить в квадратных скобках, разделяя пробелами. Так, например, присваивание:
>
>
V
=
[
1
2
3
]
V
=
1
2
3
Задает вектор V, имеющий три элемента со значениями 1, 2 и 3. После ввода вектора система выводит его на экран дисплея.
Задание матрицы требует указания нескольких строк. Для разграничения строк используется знак; (точка с запятой). Этот же знак в конце ввода предотвращает вывод матрицы или вектора (и вообще результата любой операции) на экран дисплея. Так, ввод:
>
>
M
=
[
1
2
3
;
4
5
6
;
7
8
9
];
Задает квадратную матрицу, которую можно вывести:
>
>
M
M
=
1
2
3
4
5
6
7
8
9
Возможен ввод элементов матриц и векторов в виде арифметических выражений, содержащих любые доступные системе функции, например:
>
>
V
=
[
2
+
2
/
(
3
+
4
) exp(
5
) sqrt(
10
)]:
>
>
V
V
=
2.2857
148.4132
3.1623
Для указания отдельного элемента вектора или матрицы используются выражения вида V(1) или M(i .j). Например, если задать:
>
>
M(
2
.
2
)
arts
=
5
То результат будет равен 5. Если нужно присвоить элементу M(i .j) [В тексте программ MATLAB лучше не использовать i и j как индексы, так как i и j – обозначение квадратного корня из -1. Но можно использовать I и J. – Примеч. ред.] новое значение х, следует использовать выражение:
M(ij)
=
x
Например, если элементу М(2, 2) надо присвоить значение 10, следует записать:
>
>
M(
2
.
2
)
=
10
Выражение М(i) с одним индексом дает доступ к элементам матрицы, развернутым в один столбец. Такая матрица образуется из исходной, если подряд выписать ее столбцы.
Следующий пример поясняет такой доступ к элементам матрицы М:
>
>
M
=
[
1
2
3
:
4
5
6
:
7
8
9
]
M
=
1
2
3
4
5
6
7
8
9
>
>
M(
2
)
ans
=
4
>
>
M(
8
)
ans
=
6
>
>
M(
9
)
ans
=
9
>
>
M(
5
)
=
100
;
>
>
M
M
=
1
2
3
4
100
6
7
8
9
Возможно задание векторов и матриц с комплексными элементами, например:
>
>
i
=
sqrt(
-
1
):
>
>
CM
=
[
1
2
:
3
4
]
+
i
*
[
5
6
:
7
8
]
…или:
>
>
CM
-
[
1
+
5
*
1
2
+
6
*
1
:
3
+
7
*
1
4
+
8
*
1
]
Это создает матрицу:
CM
=
1.0000
+
5.00001
2.0000
+
6.00001
3.0000
+
7.00001
4.0000
+
8.00001
Наряду с операциями над отдельными элементами матриц и векторов система позволяет производить операции умножения, деления и возведения в степень сразу над всеми элементами, т. е. над массивами. Для этого перед знаком операции ставится точка. Например, оператор * означает умножение для векторов или матриц, а оператор .* – поэлементное умножение всех элементов массива. Так, если М – матрица, то М.*2 даст матрицу, все элементы которой умножены на скаляр – число 2. Впрочем, для умножения матрицы,на скаляр оба выражения – М*2 и М.*2 – оказываются эквивалентными.
Имеется также ряд особых функций для задания векторов и матриц. Например, функция magic(n) задает магическую матрицу размера пхп, у которой сумма всех столбцов, всех строк и даже диагоналей равна одному и тому же числу:
>
>
M
=
magic(
4
)
M
=
16
2
3
13
5
11
10
8
9
7
6
12
4
14
15
1
>
>
sum(M)
ans
=
34
34
34
34
>
>
sum(M')
ans
=
34
34
34
34
>
>
sum(diag(M))
ans
=
34
>
>
M(
1.2
)
+
M(
2.2
)
+
M(
3.2
)
+
M(
4.2
)
ans
=
34
Уже сама по себе возможность создания такой матрицы с помощью простой функции magic заинтересует любителей математики. Но векторных и матричных функций в системе множество, и мы их детально рассмотрим в дальнейшем. Напомним, что для стирания переменных из рабочей области памяти служит команда clear.