Особенности
задания векторов и матриц
Описанные выше простые правила вычислений распространяются и на гораздо более
сложные вычисления, которые (при использовании обычных языков программирования
типа Бейсик или Паскаль) требуют составления специальных программ. MATLAB —
система, специально предназначенная для проведения сложных вычислений с векторами,
матрицами и массивами. При этом она по умолчанию предполагает, что каждая заданная
переменная — это вектор, матрица или массив. Все определяется конкретным значением
переменной. Например, если задано Х=1, то это значит, что X —это вектор с единственным
элементом, имеющим значение 1. Если надо задать вектор из трех элементов, то
их значения следует перечислить в квадратных скобках, разделяя пробелами. Так,
например, присваивавание
» V=[l 2 3]
V=
1 2 3
задает вектор V, имеющий три элемента со значениями 1, 2 и 3. После ввода вектора
система выводит его на экран дисплея.
Задание матрицы требует указания нескольких строк. Для разграничения строк используется
знак ; (точка с запятой). Этот же знак в конце ввода предотвращает вывод матрицы
или вектора (и вообще результата любой операции) на экран дисплея. Так, ввод
» М=[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(l0)]:
» V
V =
2.2857
148.4132 3.1623
Для указания отдельного элемента вектора или матрицы используются выражения
вида V(1) или M(i. j). Например, если задать
» М(2. 2)
arts= 5
то результат будет равен 5. Если нужно присвоить элементу M(i. j) [
В тексте
программ MATLAB лучше не использовать i и j как индексы, так как i и j — обозначение
квадратного корня из -1. Но можно использовать I и J. — Примеч. ред.
] новое
значение х, следует использовать выражение
M(ij)=x
Например, если элементу М(2, 2) надо присвоить значение 10, следует записать
»
М(2. 2)=10
Выражение М( i) с одним индексом дает доступ к элементам матрицы, развернутым
в один столбец. Такая матрица образуется из исходной, если подряд выписать ее
столбцы.
Следующий пример поясняет такой доступ к элементам матрицы М:
» М=[1 2 3: 4 5 6:
7 8 9]
М =
1 2 3
4 5 6
7 8 9
» М(2)
ans =
4
» M(8)
ans =
6
» M(9)
ans =
9
» М(5)=100;
» М
М =
1 2 3
4 100 6
7 8 9
Возможно задание векторов и матриц с комплексными элементами, например:
» i=sqrt(-l):
» СМ =[1 2: 3 4] + i*[5 6: 7 8]
или
» СМ - [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)
М =
|
|
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.
Содержание раздела