extractfield

Значения полей из массива структур

Синтаксис

a = extractfield(S,name)

Описание

пример

a = extractfield(S,name) возвращает значения полей, заданные полем name структуры S.

Примеры

свернуть все

Загрузите структуру, которая содержит информацию о дорогах в Согласии, MA.

roads = shaperead('concord_roads.shp');
r = roads(1:5)
r = 5x1 struct array with fields:
    Geometry
    BoundingBox
    X
    Y
    STREETNAME
    RT_NUMBER
    CLASS
    ADMIN_TYPE
    LENGTH

Получите x-и y-координаты дорог. Отобразите карту и подсветите первые несколько элементов с помощью цветного пурпурного.

hold on
plot(extractfield(roads,'X'),extractfield(roads,'Y'));
plot(extractfield(r,'X'),extractfield(r,'Y'),'m');

Извлеките имена дорог, сохраненных в поле STREETNAME. Значения полей являются векторами символов, таким образом, результат возвращен в массиве ячеек.

names = extractfield(r,'STREETNAME')
names = 1x5 cell array
  Columns 1 through 4

    {0x0 char}    {'WRIGHT FARM'}    {'WRIGHT FARM'}    {'WRIGHT FARM'}

  Column 5

    {'WRIGHT FARM'}

Извлеките поле X от структуры и исследуйте формат возвращенных значений. Все значения имеют тот же тип числовых данных (double), таким образом, результат возвращен в векторе.

uniformType = extractfield(r,'X')
uniformType = 1×42
105 ×

    2.0884    2.0884    2.0884    2.0883    2.0883    2.0882    2.0882    2.0882    2.0882    2.0882    2.0882    2.0883    2.0883       NaN    2.0884    2.0886    2.0887    2.0889    2.0890    2.0890    2.0891       NaN    2.0891    2.0891    2.0891    2.0891       NaN    2.0898    2.0898    2.0897    2.0896    2.0896    2.0895    2.0894    2.0894    2.0893    2.0892    2.0891       NaN    2.0891    2.0892       NaN

В иллюстративных целях измените X значений поля в одном из элементов, чтобы иметь различный тип данных. Эта команда преобразовывает второй элемент в тип данных single.

r(2).X = single(r(2).X);

Извлеките значения полей X снова. На этот раз значения имеют различные типы данных, таким образом, результат возвращен в массиве ячеек.

mixedType = extractfield(r,'X')
mixedType = 1x5 cell array
  Columns 1 through 4

    {1x14 double}    {1x8 single}    {1x5 double}    {1x12 double}

  Column 5

    {1x3 double}

Входные параметры

свернуть все

Структура, заданная как структура.

Имя поля, заданное как чувствительный к регистру скаляр строки или вектор символов.

Выходные аргументы

свернуть все

Извлеченные значения полей, возвращенные как 1 n числовым векторным массивом или массивом ячеек. n является общим количеством элементов в поле name структуры S, то есть, n = numel([S(:).(name)]). a является массивом ячеек, если какие-либо значения полей в имени поля содержат вектор символов или если значения полей не универсальны в типе; в противном случае a является тем же типом как значения полей. Форма поля ввода не сохраняется в a.

Смотрите также

|

Представлено до R2006a