Слайд 1Функции для работы
с массивами в Matlab
Лекция 3
Слайд 4Транспонирование вещественных матриц
Транспонирование матрицы, так же как и вектора, производится
с помощью символа ‘ (апостроф).
Слайд 6Транспонирование матриц, содержащих комплексные числа
Эта операция выполняется командой ‘ (апостроф).
При транспонировании комплексные числа заменяются на комплексно сопряженные.
Слайд 8Возведение матрицы в степень
Операция возведения матрицы в степень осуществляется командой
^. Только квадратные матрицы могут быть возведены в степень.
Слайд 10Поэлементные операции с матрицами
Слайд 11Создание матриц
специального вида
Для работы с матрицами удобно пользоваться следующими функциями
ones
– формирование массива из единиц
zeros – формирование массива из нулей
eye
– формирование единичной матрицы
rand – формирование массива из чисел, случайно распределённых на отрезке [0, 1]
randn – формирование массива из чисел, нормально распределённых на отрезке [-1, 1]
magic – формирование магического квадрата
pascal – формирование квадрата Паскаля
diag – диагональная матрица
и др.
Слайд 12Матрицы специального вида
Рассмотрим основной синтаксис на примере функции создания единичной
матрицы (eye)
eye(m) – создание единичной матрицы размера [m, m]
eye(m,n) –
создание единичной матрицы размера [m, n]
«лишние» строки или столбцы дополняются нулями
Слайд 17Матрицы специального вида
Функция diag: работа с диагональными матрицами
у которых ненулевые
элементы расположены на диагоналях
Синтаксис:
X = diag(v) – на главной диагонали
матрицы X расположены элементы вектора v
X = diag(v,k) – на k-ой диагонали матрицы X расположены элементы вектора v (по умолчанию k=0)
v = diag(X,k) – извлечь из матрицы X k-ую диагональ и сохранить её в векторе v
Слайд 20Вычисления с элементами массивов
Простейшие операции над элементами массивов:
sum: сумма элементов
prod:
произведение элементов
cumsum: кумулятивная сумма элементов
cumprod: кумулятивное произведение элементов
max: нахождение максимального
элемента
min: нахождение минимального элемента
sort: сортировка элементов
Слайд 21Вычисления с элементами массивов
Рассмотрим работу некоторых из этих функций на
примере sum
Для векторов эта функция возвращает сумму элементов.
Для массивов –
сумму элементов по каждому из столбцов
результат – вектор-строка
Слайд 22 Суммирование элементов массива можно проводить командой:
sum(A,[ ],dim) – возвращает сумму
элементов массива по столбцам (dim=1), по строкам (dim=2).
Слайд 23Вычисления с элементами массивов
Здесь round(X) возвращает значения, округленные до ближайшего
целого.
Слайд 24Произведение элементов массива
Синтаксис: prod(X), cumprod(X)
Описание:
Функция prod(X) в
случае одномерного массива возвращает произведение элементов массива; в случае двумерного
массива - это вектор-строка, содержащая произведения элементов каждого столбца.
Функция cumprod(X), кроме того, возвращает все промежуточные результаты.
Слайд 26 Произведение элементов массива можно проводить командой:
prod(A,[ ],dim) – возвращает матрицу
(массив размерности два) с произведение элементов массива А по столбцам
(dim=1), по строкам (dim=2).
Слайд 27Поворот матрицы
rot90(A) - осуществляет поворот матрицы А на
90° против часовой стрелки;
rot90(A,k) - осуществляет поворот матрицы
А на величину 90*k градусов, где k — целое число.
Слайд 29Вычисления с элементами массивов
Кумулятивная сумма вычисляется так же, только происходит
накопление вычисленных значений в элементах массива:
Слайд 30Вычисления с элементами массивов
Максимальный и минимальный элементы:
Слайд 31Вычисления с элементами массивов
Вызов функций max/min с двумя выходными параметрами
позволяет определить и индекс найденного элемента:
Слайд 32Вычисления с элементами массивов
Функция
sort(имя массива) производит сортировку элементов матрицы
по возрастанию.
Сортировка производится по столбцам:
Слайд 33Вычисления с элементами массивов
Сортировка элементов массива по убыванию осуществляется
с помощью искусственного приема:
-sort(-имя массива)
Слайд 34Логические функции
All(v) – возвращает истину, если все элементы вектора v
отличны от нуля. Для матриц выдаёт вектор-строку с аналогичным
результатом для каждого столбца
Слайд 35Логические функции
Any(v) – возвращает истину, если хотя бы один элемент
вектора v отличен от нуля. Для матриц выдаёт вектор-строку
с аналогичным результатом для каждого столбца
Слайд 37Поиск в массиве
find: определяет индексы элементов, удовлетворяющих заданному условию
Слайд 38Поиск в массиве
Пример применения команды find к массивам:
Слайд 39Поиск в массиве
Пример. Найти индексы максимального элемента в массиве.
Слайд 40Математические матричные операции
det – вычисление определителя квадратной матрицы
Слайд 41Матричные и поэлементные операции
При работе с матрицами можно использовать два
вида операторов:
матричные: производят действия по правилам матричной алгебры.
поэлементные: производят действия
над соответствующими элементами матриц
размеры матриц должны быть одинаковыми;
от матричных операций отличаются точкой перед знаком операции.
Слайд 42Матричные и поэлементные операции
‘ транспонирование
+ матричное (и поэлементное) сложение
-
матричное (и поэлементное) вычитание
* матричное умножение
/ матричное деление
^ матричное
возведение в степень
\ матричное деление «слева»
.* поэлементное умножение
./ поэлементное деление
.^ поэлементное возведение в степень
.\ поэлементное деление «слева»
Слайд 43Матричные и поэлементные операции
Слайд 44Матричные и поэлементные операции
Такие операции часто используются, если нужно применить
какую либо функцию ко всем элементам матрицы.
Слайд 45Матричные и поэлементные операции
Некоторые операции по умолчанию считаются поэлементными: