- •Вычисление нормы и чисел обусловленности матрицы
- •Определитель и ранг матрицы
- •Определение нормы вектора
- •Определение ортонормированного базиса матрицы
- •Функции приведения матрицы к треугольной форме
- •Определение угла между двумя подпространствами
- •Вычисление следа матрицы
- •Разложение Холецкого
- •Обращение матриц
- •Вычисление собственных значений и сингулярных чисел
- •Понятие о многомерных массивах
- •Применение оператора «:» в многомерных массивах
- •Доступ к отдельному элементу многомерного массива
- •Удаление размерности в многомерном массиве
- •Создание страниц, заполненных константами и случайными числами
- •Объединение массивов
- •Вычисление числа размерностей массива и определение размера размерностей
Понятие о многомерных массивах
В MATLAB двумерный массив является частным случаем многомерного массива. Многомерные массивы характеризуются размерностью более двух. Таким массивам можно дать наглядную интерпретацию. Так, матрицу (двумерный массив) можно записать на одном листе бумаги в виде строк и столбцов, состоящих из элементов матрицы. Тогда блокнот с такими листками можно считать трехмерным массивом, полку в шкафу с блокнотами — четырехмерным массивом, шкаф со множеством полок — пятимерным массивом и т. д.
В нашей литературе понятия «размер» и «размерность» массивов являются почти синонимами. Однако они имеют явно разный смысл в документации и литературе по системе MATLAB. Под размерностью массивов понимается число измерений в пространственном представлении массивов, а под размером — число строк и столбцов (mxn) в каждой размерности массива.
Применение оператора «:» в многомерных массивах
При обычном задании массивов (с помощью символа точки с запятой «;») число рядов (строк) массива получается на 1 больше, чем число символов «:», но массив остается двумерным. Оператор «:» (двоеточие) позволяет легко выполнять операции по увеличению размерности массивов. Приведем пример формирования трехмерного массива путем добавления новой страницы. Пусть у нас задан исходный двумерный массив М размером 3x3:
» M=[1 2 3; 4 5 6; 7 8 9]
М =
1 2 3
4 5 6
7 8 9
Для добавления новой страницы с тем же размером можно расширить М следующим образом:
» М(:,:,2)=[10 11 12; 13 14 15; 16 17 18]
M(:,:,l) =
1 2 3
4 5 6
7 8 9
М(:,:,2) =
10 11 12
13 14 15
16 17 18
Посмотрим, что теперь содержит массив М при явном его указании:
» М
М(:,:,1)=
1 2 3
4 5 6
7 8 9
М(:,:,2) =
10 11 12
13 14 15
16 17 18
Как можно заметить, числа в выражениях М(:,:, 1) и М(:,: ,2) означают номер страницы.
Доступ к отдельному элементу многомерного массива
Чтобы вызвать центральный элемент сначала первой, а затем второй страницы, надо записать следующие выражения:
» M(2,2,1)
ans =
5
» M(2,2,2)
ans =
14
Таким образом, в многомерных массивах используется то же правило индексации, что и в одномерных и двумерных. Произвольный элемент, например, трехмерного массива задается как М(1 .j.k), где 1 — номер строки, j — номер столбца и k — номер страницы. Этот элемент можно вывести, а можно присвоить ему заданное значение х: М(1 ,j,k)=x.
Удаление размерности в многомерном массиве
Мы уже отмечали возможность удаления отдельных столбцов присвоением им значений пустого вектора-столбца [ ]. Этот прием нетрудно распространить на страницы и вообще размерности многомерного массива. Например, первую страницу полученного массива М можно удалить следующим образом:
» M(:,:,1)=[ ]
M =
10 11 12
13 14 15
16 17 18
Нетрудно заметить, что в этом массиве осталась только вторая страница и что размерность массива уменьшилась на 1 — он стал двумерным.
