Организация данных в многомерных массивах
2.7131
12.9129
Input arguments must be 2-D.
Eig(A)
??? Error using è eig
Вы можете, однако, приментиь функцию eig к отдельным плоскостям в пределах массива. Например, воспользуемся оператором двоеточия для выделения одной страницы (допустим, второй):
eig(A(:, :, 2))
ans =
–2.6260
Внимание!В первом случае, где не используется оператор двоеточия, для избежания ошиб-ки нужно использовать функцию squeeze.Например, ввод eig (A(2,:,:)) приводит к ошибке так как размер входа есть [1 3 3]. Выражение eig(squeeze(A(2, :, :))), однако, передает функции eig допустимую двумерную матрицу.
Вы можете использовать два возможных варианта представления данных при помощи многомерных массивов:
- Как плоскости (или страницы) двумерных данных. В дальнейшем вы можете обра-щаться с этими страницами как с матрицами.
- Как многомерные данные. Например, вы можете иметь четырехмерный массив, где каждый элемент соответствует температуре или давлению воздуха, измеренным на равномерно распределенной трехмерной (пространственной) сетке в комнате.
В качестве конкретного примера рассмотрим представление какого-либо изображения в формате RGB. Напомним, что в формате RGB изображение хранится в виде трех двумерных матриц одинакового размера, каждая из которых характеризует интенсивность одного цвета – красного (Red), зеленого (Green) и синего (Blue) - в соответствующей точке. Общая карти-на при этом получается в результате наложения трех указанных матриц. Для отдельного изображения, использование многомерных массивов является, вероятно, наиболее легким путем для запоминания данных и доступа к ним.
Пусть все изображение хранится в файле RGB. Для доступа к полной плоскости изображе-ния в одном цвете, допустим – красном, следует записать
red_plane = RGB (:,:,1);
Для доступа к части всего изображения можно использовать запись
subimage = RGB (20:40, 50:85, :)
Изображение в формате RGB является хорошим примером данных, для которых может пот-ребоваться доступ к отдельным плоскостям, для операций типа фильтрации или просто де-монстрации. В других задачах, однако, сами данные могут быть многомерными. Рассмотри, например, набор температур, измеренных на равномерной пространственной сетке какого-либо помещения.
В данном случае пространственное положение каждого значения температуры является составной частью набора данных , то есть физическое расположение в трехмерном прос-транстве является частью информации. Такие данные также весьма прспособлены для представления при помощи многомерных массивов (см.рисунок выше).
Здесь, чтобы найти среднее значение всех измерений, то есть среднюю температуру воздуха в комнате, можно записать