Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Функции cat, diag, sum, eye, zeros



 

Все функции MATLAB’а вряд ли знают даже очень опытные пользователи. Да это и не нужно. Имеет смысл знакомиться только с теми функциями, которые полезны для решения тех задач, которые вас интересуют в данный момент. Например, когда вы решаете задачи численного интегрирования дифференциальных уравнений, вам совсем не обязательно тратить время на изучение функций теории вероятностей и математической статистики. Однако некоторые функции встречаются настолько часто при решении самых разных задач, что их следует знать всем пользователям MATLAB’а. Вот некоторые из них

 

Функция конкатенации (объединения) массивов – cat. Эта функция позволяет объединить две матрицы в одну. Синтаксис использования функции:

Cat(DIM,A,B)

DIM – номер размерности, вдоль которой производится объединение матриц. Размерностью номер один считаются номера строк, а размерностью номер два – номера столбцов. То есть, если указать DIM=1, то в результате матрица B будет расположена под матрицей A, а если DIM=2, то матрица B будет помещена справа от матрицы A. Следующий пример поясняет действие этой функции:

 

>> A = [1, 2; 3, 4]

A =

1 2

3 4

>> B = [5, 6; 7, 8]

B =

5 6

7 8

>> cat(1,A,B)

ans =

1 2

3 4

5 6

7 8

>> cat(2,A,B)

ans =

1 2 5 6

3 4 7 8

 

Для тех, кто хорошо знаком с блочной записью матриц, может более удобной следующая запись этой операции:

С = [ A, B] эквивалентно C = cat(2,A,B);

C = [ A; B] эквивалентно C = cat(1,A,B).

 

Функция диагонали матрицы – diag.Эта функция может работать в двух направлениях: во-первых, она может создавать диагональные матрицы из векторов;

 

>> v = [1 2 3 4]

v =

1 2 3 4

 

>> A=diag(v)

A =

1 0 0 0

0 2 0 0

0 0 3 0

0 0 0 4

 

Здесь, имея заданный вектор , с помощью функции diag, получена диагональная матрица , на диагонали которой расположены элементы вектора. Эта же функция позволяет создать матрицу, в которой элементы заданного вектора расположены не на главной диагонали, а на одной из кодиагоналей:

 

>> B = diag([1 2 3],2)

B =

0 0 1 0 0

0 0 0 2 0

0 0 0 0 3

0 0 0 0 0

0 0 0 0 0

 

В этом случае второй аргумент функции – номер кодиагонали, которую следует заполнить. Кодиагонали, расположенные над главной диагональю имеют положительные номера, а нижние кодиагонали – отрицательные. Используя функцию diag можно очень легко создавать ленточные матрицы. Например,

 

>> C = diag([2 2 2 2 2]) + diag([-1 -1 -1 -1],1) + diag([-1 -1 -1 -1],-1)

C =

2 -1 0 0 0

-1 2 -1 0 0

0 -1 2 -1 0

0 0 -1 2 -1

0 0 0 -1 2

 

здесь одной-единственной командой создается трехдиагональная матрица, которая часто используется в методе конечных разностей.

Другой вариант использования функции diag возникает, когда ее аргументом является матрица. В этом случае результатом функции будет соответствующая диагональ матрицы-аргумента. Пример:

 

>> D = [1 2 3 4 5; -1 1 -1 1 -1; 1 2 3 2 1; 0 0 1 0 0; 1 1 1 1 1]

D =

1 2 3 4 5

-1 1 -1 1 -1

1 2 3 2 1

0 0 1 0 0

1 1 1 1 1

 

>> diag(D,2)

ans =

 

Функция суммирования – sum.В простейшем варианте эта функция вычисляет сумму всех элементов вектора:

 

>> sum([1 2 3 -1 1])

ans =

 

Однако, функция sum может работать и с матрицами. Так, если мы попросим эту функцию обработать матрицу D из предпоследнего примера, то

 

>> sum(D)

ans =

2 6 7 8 6

 

то она выдаст вектор, с суммами, вычисленными по каждому столбцу матрицы.

 

Функция единичной матрицы – eye.В линейной алгебре очень важную роль играет единичная матрица – квадратная матрица, на диагонали которой стоят единицы, а все остальные элементы равны нулю. Для создания таких матриц в MATLAB’е имеется специальная функция:

 

>> eye(4)

ans =

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

 

Аргументом этой функции является размер матрицы, которую вам надо получить

Функции создания матриц с нулевыми и единичными элементами – zeros и ones.Эти функции позволяют создать матрицы, заполненные одними нулями, либо одними единицами.

 

>> zeros(3)

ans =

0 0 0

0 0 0

0 0 0

 

В отличие от функции eye здесь мы можем создавать не только квадратные, но и прямоугольные матрицы:

 

>> ones(2,4)

ans =

1 1 1 1

1 1 1 1

 

Упражнения:

  1. Создайте, используя изученные функции, следующие матрицы:
  2. Используя функцию cat, составьте из этих матриц матрицу F.

  1. Извлеките из матрицы F вторую кодиагональ ( 3 0 0 1).
  2. Посчитайте суммы элементов строк матрицы F (вспомните об операции транспонирования ( 7 6 7 3 3 3 ).

 

 




©2015 studopedya.ru Все права принадлежат авторам размещенных материалов.