extractfield

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

Синтаксис

Описание

пример

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

Примеры

свернуть все

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

roads = shaperead('concord_roads.shp');
r = roads(1:5)
r=5×1 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');

Figure contains an axes object. The axes object contains 2 objects of type line.

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

names = extractfield(r,'STREETNAME')
names = 1x5 cell
  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=1×5 cell array
  Columns 1 through 3

    {[2.0884e+05 ... ]}    {[2.0884e+05 ... ]}    {[2.0891e+05 ... ]}

  Columns 4 through 5

    {[2.0898e+05 ... ]}    {[2.0891e+05 ... ]}

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

свернуть все

Структура в виде структуры.

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

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

свернуть все

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

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

|

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