Способы задания векторов
Вектор – это одномерный массив данных. Вектор в ML – это матрица из одного столбца или одной строки. Соответственно вектор может быть вектором-столбцом или вектором-строкой.
Для задания вектора можно воспользоваться одним из приведенных ниже способов.
1. Можно задать значения вектора поэлементно:
<имя пер.>=[<значение1> <значение2> ….<значениеN>]
Например,
>>P=[3 5 7 12]
Значения элементов записываются через пробел или через запятую.
В результате выполнения этой команды создается вектор-стро-ка:
P =
3 5 7 12
Если при задании вектора значения его элементов разделить точкой с запятой, то получим вектор-столбец:
<<A=[1; 2; 3]
A=
2. Если элементы вектора являются арифметической прогрессией, то можно задать вектор так:
<имя пер.>=<нач. значение>:<шаг>:<конечное значение>
Например,
>>X=0 : 0.5: pi
В результате будет сформирован вектор со значениями:
X =
0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000
Шаг должен быть больше нуля. Если он равен единице, то его можно не указывать:
>>Х = 1 : 10
X =
1 2 3 4 5 6 7 8 9 10
Чтобы изменить форму вектора, надо записать Х’ – тогда вектор отобразится в виде столбца. Такая операция называется транспонированием.
Например,
>> X=1:1:5
X = 1 2 3 4 5
>> X'
ans =
3. Также для формирования арифметической прогрессии можно использовать функцию linspace:
linspace (<нач. значение>,<кон. значение>,<кол. значений>)
Например,
>>B=linspace(0,pi,5)
B =
0 0.7854 1.5708 2.3562 3.1416
4. Вектор можно задать также путём объединения нескольких векторов.
Например,
>>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
Для определения длины вектора предназначена функция length:
>> l=length(D)
l =
Для доступа к элементу вектора необходимо указать его имя и в круглых скобках номер элемента. Например, D(3). Для обращения к последнему элементу вектора можно записать: D(length(D)) или D(end).
Задание матриц
При задании матриц данные строк записываются через пробел или через запятую. Элементы разных строк разделяются знаком точка с запятой (;) или записываются с новой строки. В ML матрица хранится в порядке следования по столбцам.
Зададим матрицу:
>>A=[1 2 3; 4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
или
>> A=[1 2 3
4 5 6
7 8 9]
A =
1 2 3
4 5 6
7 8 9
Обращение к элементу матрицы: <имя> (<индексы>), например, А(2,3).
Операции
В MLможно не только выполнять обычные арифметические операции над числами и вычислять значения функций, но и производить операции над векторами и матрицами.
Арифметические операции (АО)
К арифметическим операциям в ML относятся: cложение (+), вычитание (-), умножение (*), деление (/), обратное деление (\),возведение в степень(^), транспонирование (‘).
Приоритеты АО:
· возведение в степень, транспонирование;
· умножение, деление;
· сложение, вычитание.
Все арифметические операции являются “матричными” и осуществляются по правилам линейной алгебры.
При необходимости поэлементного выполнения операций над матрицами и векторами перед знаками операций ^, *, /, \ следует ставить точку:
>> X=[1 2 3 4];
>> X.^2
ans =
1 4 9 16
В данном случае каждый элемент исходного вектора возводится в квадрат. Выполнение команды X ^ 2 невозможно, так как это противоречит правилам матричной алгебры.
Транспонирование тоже бывает с точкой, тогда для комплексных чисел оно выполняется без комплексного сопряжения.
При выполнении арифметических операций с матрицами необходимо учитывать их размерность.
Каждой арифметической операции в ML соответствует определенная функция. Например, plus(x,y) – сложение массивов, times(x,y) – поэлементное умножение массивов, mtimes(x,y) – матричное умножение и т.д.:
>> 2+3
ans =
>> plus(2,3)
ans =
>> X=[1 2 3 4];
>> Y=[5 6 7 8];
>> times(X,Y)
ans =
5 12 21 32
>> X.*Y
ans =
5 12 21 32
Выполнение арифметических операций с матрицами будет подробно рассмотрено далее.
Операции отношения
К операциям отношения в ML относятся: равно (= =),не равно (~ =),меньше(<),меньше или равно (<=), больше (>), больше или равно (>=).
Операции отношения используются для поэлементного сравнения двух операндов (чисел, матриц, векторов одинакового размера). Результатом операции отношения может быть соответственно число, матрица или вектор, состоящие из элементов,
обозначающих «истина» или «ложь». В ML это 1 и 0 соответственно:
>>A=[1 0 3; -2 5 -6];
>> B=[8 -9 1; 7 2 2];
>> A>B
ans =
0 1 1
0 1 0
В результате получили матрицу, каждый элемент которой имеет значение «истина» или «ложь»:
>> x=1; y=2; z=3;
>> ((x+y)==z)+(y<z)+(x<=y)
ans =
Дата добавления: 2016-03-05; просмотров: 2115;