struct
结构体数组
说明
结构体数组是使用名为字段的数据容器将相关数据组合在一起的数据类型。每个字段都可以包含任意类型的数据。可以使用 structName.fieldName 格式的圆点表示法来访问字段中的数据。
创建对象
当您有数据要放入新的结构体中时,可以使用圆点表示法创建结构体,每次为结构体命名一个字段:
s.a = 1;
s.b = {'A','B','C'}s = struct with fields:
a: 1
b: {'A' 'B' 'C'}
字段名称可以包含 ASCII 字母(A-Z、A-Z)、数字 (0-9) 和下划线,并且必须以字母开头。字段名称的最大长度为 namelengthmax。
也可以按如下所述,使用 struct 函数创建一个结构体数组。您可以同时指定许多字段,也可以创建一个非标量结构体数组。
语法
描述
s = struct 创建不包含任何字段的标量 (1×1) 结构体。
s = struct( 创建具有指定字段和值的结构体数组。field,value)value 输入参量可以是任何数据类型,例如数值、逻辑值、字符或元胞数组。
如果
value不是元胞数组,或者value是标量元胞数组,则s是标量结构体。例如,s = struct('a',[1 2 3])创建一个 1×1 结构体,其中s.a = [1 2 3]。如果
value是非标量元胞数组,则s是维度与value相同的结构体数组。s的每个元素包含value的对应元素。例如,s = struct('x',{'a','b'})返回s(1).x = 'a'和s(2).x = 'b'。如果
value是空元胞数组{},则s是空 (0×0) 结构体。
s = struct(field1,value1,...,fieldN,valueN) 创建一个包含多个字段的结构体数组。
如果
value的所有输入都不是元胞数组,或者value中作为元胞数组的所有输入都是标量,则s是标量结构体。如果任一
value输入是非标量元胞数组,则s具有与该元胞数组相同的维度。此外,如果两个或多个value输入是非标量元胞数组,则它们必须都具有相同的维度。对于类型为标量元胞数组或任何其他数据类型的数组的任何
value,struct将value的内容插入s的所有元素的相关字段中。例如,s = struct('x',{'a','b'},'y','c')返回s(1).x = 'a'、s(2).x = 'b'、s(1).y = 'c'和s(2).y = 'c'。如果任何
value输入是空元胞数组{},则输出s是空 (0×0) 结构体。要指定一个空字段并保留其他字段的值,请改用[]作为value输入。
s = struct([]) 创建不包含任何字段的空 (0×0) 结构体。
s = struct( 创建包含与 obj)obj 的属性对应的字段名称和值的标量结构体。struct 函数不会转换 obj,而是将 s 创建为一个新的结构体。此结构体不保留类信息,因此专用、受保护和隐藏的属性在 s 中变为公共字段。struct 函数在您使用此语法时会发出警告。
输入参量
示例
扩展功能
版本历史记录
在 R2006a 之前推出另请参阅
isfield | table | isstruct | fieldnames | orderfields | rmfield | substruct | cell2struct | struct2cell | struct2table | table2struct | namelengthmax
