
Матрицы и вектора
Понятие матрицы и вектора было дано в первой лекции и поэтому мы перейдем сразу к изучению основных функций, которые понадобятся, для работы (см. таблицу № 2.4), но перед этим введем способ задания матрицы (вектора) и способ обращения к его элементам.
Ввод матрицы осуществляется использованием метода так называемого объединения элементов. Это объединение записывается так:
>> A=[1 1 1 2];
Здесь мы сформировали вектор (или матрицу столбец, причем для системы не важна ее пространственная ориентация, т.е. что размерность 1хn, что nx1, все едино). Элементы при таком формировании разделяются пробелами или запятыми. Для формирования матрицы, производят построчную запись, отделяя при этом строки друг от друга точкой с запятой:
>> A=[1 2 8; 3 7 0; 7 9 5];
При этом можно производить и составления матрицы путем объединения матриц или векторов между собой (здесь вектора A1 A2 были определены заранее):
>> Q=[A1;A2];
При этом вектор A1 будет формировать первую строку матрицы, а вектор A2 вторую.
Таблица 2.4 Функции матричных действий |
|
Функция и ее синтаксис |
Описание |
zeros(m, n) |
Возвращает нулевую матрицу (состоящую из одних нулей) размерности mхn. |
ones(m, n) |
Возвращает матрицу состоящую из одних единиц размерности mхn. |
eye(m, n) |
Создает единичную матрицу размерности mхn. |
rand(m, n) |
Возвращает матрицу случайных чисел равномерно распределенных в диапазоне от 0 до 1, матрица имеет размерность mхn. |
randn(m, n) |
Возвращает матрицу размерности mхn, состоящих из случайных чисел в диапазоне от 0 до 1 и имеющих гаусовское распределение (имеющих нормальный закон распределения). |
hadamard(n) |
Возвращает матрицу Адамара размерности nхn. |
hild(n) |
Возвращает матрицу Гильберта размерности nхn. |
invhild(n) |
Возвращает обратную матрицу Гильберта размерности nхn. |
reshape(A, n, m) |
Функция образует матрицу размерности nхm путем выборки элементов заданной матрицы А по столбцам и последующему распределению этих элементов по m столбцам каждый из которых содержит n элементов, при этом матрица А должна иметь размерность nхm. |
tril(A) |
Выбирает нижнюю треугольную матрицу из матрицы А |
triu(A) |
Выбирает верхнюю треугольную матрицу из матрицы А |
diag(A, n) |
Функция создает диагональную матрицу из вектора А, при этом второй параметр необязателен. Если второй параметр присутствует, то создается матрица в которой вектор А помещается в другую диагональ, при этом если n>0, то вектор помещается выше главной диагонали, если n <0 то ниже, если n=0 то на главную диагональ. Если А матрица, то функция выдает вектор сформированный из элементов главной ее диагонали, если второй параметр отсутствует или равен нулю. Если второй параметр присутствует, то функция выдает другую диагональ, в соответствие с вторым параметром (см. предыдущий абзац). |
’ (апостроф) |
Оператор производит транспонирование матрицы |
+ - * / \ ^ |
Математические действия над матрицами. Применимы как к выражению вида «матрица-скаляр», так и «матрица-матрица» (за исключением возведения в степень, он применима только к выражению «матрица-скаляр»). Во всех операциях необходимо следить за размерностями матриц. |
inv(A) |
Возвращает обратную матрицу по отношению к матрице А |
det(A) |
Подсчет определителя (детерминанта) матрицы |
cross(A, B) |
Векторное произведение векторов |
.* ./ .\ .^ |
Поэлементные операции. При применении этих операций матрицы должны иметь одинаковые размерности, или же быть скалярами (числом). Пи этом происходит сопоставление элементов одной матрицы элементам другой матрицы и выполняется соответствующая операция. |
lu(A) |
Производит LU-разложение матрицы А и выдает матрицы в следующем порядке [L U P] (подобнае запись обязательна), при этом выполняется следующее соотношение P*A=L*U. |
size(A) |
Возвращает масим сосотоящий из числа сторок (первый элемент) и числа столбцов (второй элемент). |
sum(A) |
Возвращает сумму всех элементов по столбцу |
mean(A) |
Возвращает среднее значение столбца матрицы |
std(A) |
Возвращает среднеквадротическое отклонение столбца матрицы |
min(A) max(A) |
Возвращает минимум и максимум соответственно, по столбцу матрици |
sort(A) |
Сортирует столбец матрицы по возрастанию |
prod(A) |
Вычисляет произведение всех элементов столбцов |
При обращении к элементу марици делают запись вида A(1,8), при этом произошло обращение к элементу первой сторки восьмого столбца. Таким путем можно не только считывать значение жлемента но и менять его значение. Если необходимо произвести обращение не к одному элементу а к нескольким или точнее выделить из общей матрици подматрицу то поступают так A(1:5,6:8), при этом поизошло выделение подматрици начиная с 1 сторки и кончая 5 и выделили столбци с6 по 8. если необходимо выделить весь столбец (строку), то вмето указания конкретных номеров можно просто поставить пустое двоеточие (A(:,6:8)).
Если требуется сформировать вектор, элементу которого расположены в арифметической прогрессии то проще всего это сделать так:
x=xn:h:xk
xn – начальное значение;
xk – конечное значение;
h – шаг изменения.
Таким образом хорошо задавать, нарример время изменения сигнала или создавать массив координаты.