Доступ к данным в массиве структур

В этом примере показано, как получить доступ к содержимому массива структур. Чтобы запустить код в этом примере, загрузите несколько переменных в структуру под названием 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=1×2 struct array with fields:
    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), которые пытаются индексировать в поле для нескольких элементов структуры.

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте