Значения полей из массива структур
Загрузите структуру, которая содержит информацию о дорогах в Согласии, MA.
roads = shaperead('concord_roads.shp');
r = roads(1:5)
r=5×9 struct
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=1×5 cell
Columns 1 through 4
{1x14 double} {1x8 single} {1x5 double} {1x12 double}
Column 5
{1x3 double}
S
СтруктураСтруктура, заданная как структура.
name
— Имя поляИмя поля, заданное как чувствительный к регистру скаляр строки или вектор символов.
a
— Извлеченные значения полейИзвлеченные значения полей, возвращенные как 1 n числовым векторным массивом или массивом ячеек. n является общим количеством элементов в поле name
из структуры S
, то есть, n = numel([S(:).(name)])
A
массив ячеек, если какие-либо значения полей в имени поля содержат вектор символов или если значения полей не универсальны в типе; в противном случае a
тот же тип как значения полей. Форма поля ввода не сохраняется в a
.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.