extractfield

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

Синтаксис

Описание

пример

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

Примеры

свернуть все

Загрузка структуры, содержащей информацию о дорогах в Concord, 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. The axes 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 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