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

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

Если поле содержит массив ячеек, используйте фигурные скобки, чтобы получить доступ к данным, таким как S.cellField{1:50,1:80}.
Создайте нескалярный массив путем загрузки данных из файла cape.mat во второй элемент массива S. Файл cape.mat содержит изображение Кейп-Кода, Массачусетс.
Каждый элемент массива структур должен иметь те же поля. Оба flujet.mat и cape.mat содержите переменные X, map, и captionS 1 2 массив.
S(2) = load('cape.mat')S=2×3 struct
X
map
caption
Для нескалярных структур синтаксисом для доступа к полю является structName(indices).fieldName. Отобразите изображение Кейп-Кода, задав 2 как индекс в S.
image(S(2).X) colormap(S(2).map)

Добавьте индексы, чтобы выбрать и отобразить небольшой раздел S(2).X.
capeSection = S(2).X(200:300,150:250); image(capeSection)

Можно индексировать в часть поля только, когда вы обращаетесь к одному элементу массива структур. MATLAB® не поддерживает операторы, такие как S(1:2).X(1:50,1:80), которые пытаются индексировать в поле для нескольких элементов структуры.