Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Cоздание матриц с заданными свойствами
Для создания единичной матрицы (по диагонали такой матрицы расположены единицы, а остальные элементы – нули) служит функция eye: · eye(n) – возвращает единичнцю матрицу размером n x n; · eye(m, n) или eye([m. n]) – возвращает матрицу размером m x n с единицами по диаго-нали и нулями в остальных ячейках; · eye(size(A)) – возвращает единичную матрицу того же размера, что и А; Пример использования функции eye:
> > t=eye(4, 5) t = 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0
Для создания матриц, все элементы которых – единицы, используется функция ones: · ones(n) – возвращает матрицу размером n x n, все элементы которой – единицы; · ones(m, n) или ones([m.n]) – возвращает матрицу размером m x n, состоящую из единиц; · ones(size(A)) – возвращает массив единиц такой же размерности, что и А. Например,
> > S=ones(3, 4) S = 1 1 1 1 1 1 1 1 1 1 1 1
Иногда нужны матрицы, все элементы которых – нули. Следующая функция обеспечи-вает создание таких матриц: · zeros(n) – матрица n x n, содержащая нули; · zeros(m, n) или zeros([m.n]) – матрица m x n, состоящая из нулей; · zeros(size(A)) – массив того же размера содержащий нули, что и А. Например, > > D=zeros(3, 2) D = 0 0 0 0 0 0
Cвойства матриц сильно зависят от их диагональных элементов. Следующая функция MATLAB позволяет создавать специальные типы матриц с заданными диагональными элементами. · X=diag(v, k) – для вектора v, состоящего из n компонентов, возвращает квадратную матрицу Х порядка n+abc(k) с элементами v на k-той диагонали, при k=0 – это главная диагональ, при k> 0 – одна из верхних диагоналей, при k< 0 – одна из нижних диагона-лей. Остальные элементы матрицы – нули; · X=diag(v) помещает вектор v на главную диагональ (то же, что и предыдущем случае при k=0); · v=diag(X, k) для матрицы Х возвращает вектор-столбец, состоящий из элементов k-той диагонали матрицы Х; · v=diag(X) возвращает главную диагональ матрицы Х (то же, что и предыдущем случае при k=0). Примеры: > > v=[2, 3] v = 2 3
> > x=diag(v, 2)
x = 0 0 2 0 0 0 0 3 0 0 0 0 0 0 0 0 > > x=[2, 5, 45, 6; 3, 5, 4, 9; 7, 9, 4, 8; 5, 66, 45, 2] x = 2 5 45 6 3 5 4 9 7 9 4 8 5 66 45 2 > > v=diag(x, 0) v =
Перестановки элементов матриц Для перестановок элементов матриц служат следующие функции: · B=fliplr(A) зеркально переставляет столбцы матрицы А относительно вертикальной оси. Например, > > f=[1, 2, 3; 5, 45, 3] f = 1 2 3 5 45 3 > > fliplr(f) ans = 3 2 1 3 45 5 · B=flipud(A) зеркально переставляет столбцы матрицы А относительно горизонтальной оси. Например, > > f=[3, 2, 12; 6, 3, 2] f = 3 2 12 6 3 2 > > flipud(f) ans = 6 3 2 3 2 12 · perms(v) возвращает матрицу v, строки которой есть все возможные перестановки эле-ментов вектора v. Матрица будет содержать n! строк и n столбцов. Например, > > v=[1 4 6] v = 1 4 6 > > p=perms(v) p = 6 4 1 6 1 4 4 6 1 4 1 6 1 4 6 1 6 4 Л а б о р а т о р н а я р а б о т а № 3
1. Создайте матрицу А, размером 3х3, состоящую из произвольных элементов. 2. Удалите третью строку матрицы А. 3. Удалите первый столбец матрицы А. 4. Постройте матрицу В, состоящую из следующих элементов: первый элемент первой строки представляет собой элементы матрицы А, умноженные на 5; второй элемент первой строки представляет собой элементы матрицы А, к каждому из которых прибавлено число 10; первый элемент второй строки представляет собой элементы матрицы А, деленные на 6, а второй элемент второй строки представляет собой элементы матрицы А. 5. Создайте матрицу С, состоящую из трех столбцов и пяти строк, по главной диагонали которой будут расположены единицы, а все остальные элементы – нули. 6. Создайте матрицу D размером 4х5, состоящую из единиц. 7. Создайте матрицу E того же размера, но состоящую из нулей. 8. Введите матрицу S размером 6х6, содержащую произвольные элементы. 9. Выделите главную диагональ этой матрицы. 10.Получите вектор столбец, содержащий элементы k=2-ой диагонали матрицы S. 11.Получите вектор столбец, содержащий элементы k=-3-ой диагонали матрицы S. 12.Получите матрицу размером 5х5, у которой на главной диагонали размещены элементы 2, 5, 1, 6, 7, а все остальные элементы – нули. 13.Запишите как изменится размерность матрицы, если расположить эти элементы на диагонали k=3. 14.Расположите эти элементы на диагонали k=-4. 15.Введите матрицу Z размером 4х4, состоящую из произвольных элементов. 16.Получите новую матрицу ZZ, зеркально переставив столбцы матрицы Z относительно вертикальной оси. 17.Получите матрицу ZZZ, зеркально переставив столбцы матрицы Z относительно вертикальной оси. 18.Введите векор-строку, содержащую следующие элементы 8, 4, 6. 19.Получите матрицу Н, строки которой есть все возможные перестановки элементов8, 4 и 6. 20.Добавьте к этой матрице строку, содержащую следующие элементы 10, 20 и 30.
Л е к ц и я № 7, 8
Вычисление произведений Несколько простых функций служат для перемножения элементов массивов: · prod(A) возвращает произведение элементов массива, если А – вектор, или вектор-стро-ку, содержащую произведения элементов каждого столбца, если А – матрица; · prod(A, dim) возращает произведение элементов массива А по столбцам или по стро-кам в зависимости от скаляра dim. Например,
> > A=[1 2 3 4; 2 4 5 7; 6 8 3 4] A = 1 2 3 4 2 4 5 7 6 8 3 4
> > B=prod(A) B = 12 64 45 112
· cumprod(A) возвращает произведение с накоплением. Если А – вектор, cumprod(A) возвращает вектор, содержащий произведение с накоплением элементов вектора А. Если А – матрица, cumprod(A) возвращает матрицу того же размера, что и А, содержа-щую произведения с накоплением для каждого столбца матрицы А; · cumprod(A, dim) возвращает произведение с накоплением элементов по строкам или столбцам матрицы в зависимости от скаляра dim. Например, cumprod(A, 1) дает при-рост первому индексу (номеру строки), таким образом выполняя умножение по столб-цам матрицы А. Например,
> > A=[1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9
> > B=cumprod(A) B = 1 2 3 4 10 18 28 80 162
> > B=cumprod(A, 1) B = 1 2 3 4 10 18 28 80 162
> > B=cumprod(A, 2) B = 1 2 6 4 20 120 7 56 504 Cуммирование элементов Определены следующие функции суммирования элементов массивов: · sum(A) возвращает сумму элементов массива, если А – вектор, или вектор-строку, со-держащую сумму элементов каждого столбца, если А – матрица; · sum(A, dim) возращает сумму элементов массива А по столбцам или по строкам в за-висимости от скаляра dim. Например, > > A=magic(4) A = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 > > B=sum(A) B = 34 34 34 34 · cumsum(A) выполняет суммирование с накоплением. Если А – вектор, cumsum(A) воз-вращает вектор, содержащий результаты суммирования с накоплением элементов век-тора А. Если А – матрица, cumsum(A) возвращает матрицу того же размера, что и А, содержащую суммирование с накоплением для каждого столбца матрицы А; · cumsum(A, dim) выполняет суммирование с накоплением элементов по размерности, определенной скаляром dim. Например, cumsum(A, 1) выполняет суммирование по столбцам, а cumsum(A, 2) – по строкам. Например, > > A=magic(5) A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 > > B=cumsum(A) B = 17 24 1 8 15 40 29 8 22 31 44 35 21 42 53 54 47 40 63 56 65 65 65 65 65
> > B=cumsum(A, 1) B = 17 24 1 8 15 40 29 8 22 31 44 35 21 42 53 54 47 40 63 56 65 65 65 65 65
> > B=cumsum(A, 2) B = 17 41 42 50 65 23 28 35 49 65 4 10 23 43 65 10 22 41 62 65 11 29 54 56 65 Поворот матриц Следующая функция обеспечивает поворот матрицы (по расположению элементов): · rot90(A) осуществляет поворот матрицы А на 900 против часовой стрелки; · rot90(A, k) осуществляет поворот матрицы А на величину 90*k градусов, где k – целое число. Например, > > M=[3 2 7; 3 3 2; 1 1 1] M = 3 2 7 3 3 2 1 1 1 > > rot90(M) ans = 7 2 1 2 3 1 3 3 1 > > rot90(M, 2) ans = 1 1 1 2 3 3 7 2 3
|
Последнее изменение этой страницы: 2017-03-17; Просмотров: 516; Нарушение авторского права страницы