Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.04 с.)
Главная | Случайная страница | Обратная связь