Все функции 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 можно очень легко создавать ленточные матрицы. Например,
здесь одной-единственной командой создается трехдиагональная матрица, которая часто используется в методе конечных разностей.
Другой вариант использования функции diag возникает, когда ее аргументом является матрица. В этом случае результатом функции будет соответствующая диагональ матрицы-аргумента. Пример:
Функция суммирования – 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
Упражнения:
Создайте, используя изученные функции, следующие матрицы:
Используя функцию cat, составьте из этих матриц матрицу F.
Извлеките из матрицы F вторую кодиагональ ( 3 0 0 1).
Посчитайте суммы элементов строк матрицы F (вспомните об операции транспонирования ( 7 6 7 3 3 3 ).