Этот пример показывает, как получить доступ к содержимому массива структур. Чтобы запустить код в этом примере, загрузите несколько переменных в скалярную структуру (1 на 1) под названием S.
S = load('clown.mat')S = struct with fields:
X: [200x320 double]
map: [81x3 double]
caption: [2x1 char]
Переменные из файла (X, caption и map) являются теперь полями в struct.
Доступ к данным с помощью записи через точку формы structName.fieldName. Например, передайте числовые данные в поле X к функции image:
image(S.X) colormap(S.map)

К части доступа поля добавьте индексы как подходящие для размера и типа данных в поле. Например, передайте левый верхний угол X к функции image:
upperLeft = S.X(1:50,1:80); image(upperLeft);

Если конкретное поле содержит массив ячеек, используйте фигурные скобки, чтобы получить доступ к данным, таким как S.cellField{1:50,1:80}.
Данные в нескалярных массивах структур
Создайте нескалярный массив путем загрузки данных из файла mandrill.mat во второй элемент массива S:
S(2) = load('mandrill.mat')Каждый элемент массива структур должен иметь те же поля. И clown.mat и mandrill.mat содержат переменные X, map и caption.
S 1 2 массив.
S =
1×2 struct array with fields:
X
map
caption
Для нескалярных структур синтаксисом для доступа к конкретному полю является structName(indices).fieldName. Вновь отобразите изображение клоуна, задав индекс для struct клоуна (1):
image(S(1).X) colormap(S(1).map)
Добавьте индексы, чтобы выбрать и вновь отобразить левый верхний угол полевого содержимого:
upperLeft = S(1).X(1:50,1:80); image(upperLeft)
Можно индексировать в часть поля только, когда вы обращаетесь к одному элементу массива структур. MATLAB® не поддерживает операторы, такие как S(1:2).X(1:50,1:80), которые пытаются индексировать в поле для нескольких элементов структуры.