extractfield
Field values from structure array
Syntax
Description
Examples
Extract Fields From Structure
Load a structure that contains information about roads in 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
Get the x- and y-coordinates of the roads. Display the map, and highlight the first few elements using the color magenta.
hold on plot(extractfield(roads,'X'),extractfield(roads,'Y')); plot(extractfield(r,'X'),extractfield(r,'Y'),'m');
Extract the names of the roads, stored in the field STREETNAME
. The field values are character vectors, so the result is returned in a cell array.
names = extractfield(r,'STREETNAME')
names = 1x5 cell
{0x0 char} {'WRIGHT FARM'} {'WRIGHT FARM'} {'WRIGHT FARM'} {'WRIGHT FARM'}
Extract the X
field from the structure and examine the format of the returned values. All values have the same numeric data type (double
), so the result is returned in a vector.
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
For illustrative purposes, change the X field value in one of the elements to have a different data type. This command converts the second element to data type single
.
r(2).X = single(r(2).X);
Extract the X
field values again. This time, the values have different data types, so the result is returned in a cell array.
mixedType = extractfield(r,'X')
mixedType=1×5 cell array
{[2.0884e+05 2.0884e+05 2.0884e+05 2.0883e+05 2.0883e+05 2.0882e+05 2.0882e+05 2.0882e+05 2.0882e+05 2.0882e+05 2.0882e+05 2.0883e+05 2.0883e+05 NaN]} {[2.0884e+05 2.0886e+05 2.0887e+05 2.0889e+05 2.0890e+05 2.0890e+05 2.0891e+05 NaN]} {[2.0891e+05 2.0891e+05 2.0891e+05 2.0891e+05 NaN]} {[2.0898e+05 2.0898e+05 2.0897e+05 2.0896e+05 2.0896e+05 2.0895e+05 2.0894e+05 2.0894e+05 2.0893e+05 2.0892e+05 2.0891e+05 NaN]} {[2.0891e+05 2.0892e+05 NaN]}
Input Arguments
S
— Structure
structure
Structure, specified as a structure.
name
— Field name
string scalar | character vector
Field name, specified as a case-sensitive string scalar or character vector.
Output Arguments
a
— Extracted field values
1-by-n numeric vector | 1-by-n cell array
Extracted field values, returned as a 1-by-n numeric
vector or cell array. n is the total number of elements
in the field name
of structure S
,
that is, n = numel([S(:).(name)])
. a
is a cell array if any field values in the field name contain a character
vector or if the field values are not uniform in type; otherwise
a
is the same type as the field values. The shape
of the input field is not preserved in a
.
Version History
Introduced before R2006a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)