主要内容

塑造

结构数组

描述

一种结构数组使用数据容器对相关数据进行分组的数据类型是否称为字段.每个字段可以包含任何类型的数据。使用表单的点表示法访问字段中的数据structname.fieldname.

创建

当你有数据要放入一个新结构时,使用点表示法创建结构,一次命名一个字段:

S.A = 1;S.B = {“一个”“B”“C”}
s =结构与字段:答:1 B:{'A''B''''}

您还可以使用该结构数组使用塑造功能,如下所述。您可以同时指定许多字段,或创建非卡拉尔结构阵列。

描述

s =结构创建一个没有字段的标量(1 × 1)结构。

例子

s =结构(场地价值使用指定的字段和值创建结构数组。这价值输入参数可以是任何数据类型,例如数字,逻辑,字符或单元格数组。

  • 如果价值单元格阵列,或者如果价值是标量单元格数组吗S.是一个标量结构。例如,s = struct('a',[1 2 3])创建一个1×1结构,在哪里s = [1 2 3]

  • 如果价值那么是一种非卡尔卡尔阵列,那么S.结构数组是否具有相同的维度价值.每个元素S.包含相应的元素价值.例如,s = struct('x',{'a','b'})回报s(1).x ='a'(2)。x = ' b '

  • 如果价值是一个空的单元格数组{}, 然后S.是空(0-by-0)结构。

例子

s = struct(Field1,Value1,...,Fieldn,Valuen)创建具有多个字段的结构阵列。

  • 如果没有价值输入是单元格数组价值单元格数组的输入是标量S.是一个标量结构。

  • 如果有的话价值那么,输入是一个非标量单元格数组S.具有与该单元格数组相同的维度。如果有两个或更多价值输入是非卡尔卡罗拉阵列,然后它们都必须具有相同的尺寸。

    对于任何价值即标量单元格数组或任何其他数据类型的数组,塑造插入内容价值在所有要素的相关领域S..例如,s =结构(“x”,{“a”、“b”},' y ', ' c ')回报s(1).x ='a'(2)。x = ' b 's(1).y ='c', 和(2)。y = ' c '

  • 如果有任何价值输入是一个空的单元格数组,{},然后输出S.是空(0-by-0)结构。指定空字段并保留其他字段的值,使用[]作为一个价值输入代替。

s = struct([])创建一个没有字段的空(0-by-0)结构。

s =结构(obj.的属性对应的字段名和值创建标量结构obj..这塑造函数不转换obj.,但宁愿创造S.作为一种新的结构。此结构不保留课程信息,如此私密,受保护和隐藏属性成为公共领域S..这塑造函数在使用此语法时发出警告。

输入参数

全部展开

字段名称,指定为字符向量或字符串标量。有效的字段名称以字母开头,可以包含字母,数字和下划线。字段名称的最大长度是值的字段名称namelengthmax.函数返回。

值,指定为任意类型的数组。如果有任何价值输入是一个非卡拉尔单元阵列,那么所有非卡尔电池阵列输入都必须具有相同的尺寸。

如果有任何价值输入是一个空的单元格数组,{},则输出为空结构数组。要指定单个空字段,请使用[]

对象,指定为标量或对象数组。这塑造函数复制属性obj.到一个新的标量结构的字段。

塑造函数不会从大多数基本数据类型创建结构。例如,如果obj.或者字符数据类型,然后塑造发出错误消息。然而,塑造确实返回表的属性或作为结构的时间表。看基本的MATLAB类对于基本数据类型列表。

例子

全部收缩

在结构的字段中存储相关的数据块。您可以为字段指定人类可读的名称来描述数据。

通过使用点表示法向结构中添加字段来创建结构。字段包含正弦波的x值和y值,以及描述数据的文本。

数据。x = linspace(0, 2 *π);数据。y =罪(data.x);数据。title =“y = sin (x)”
数据=结构与字段:y: [1x100 double] title: 'y = sin(X)'

画出正弦波。可以通过字段名引用x值和y值的数组。然后添加标题。

绘图(data.x,data.y)标题(data.title)

图中包含一个坐标轴。标题为y = sin(x)的轴包含一个类型为line的对象。

创建包含单个字段的非标量结构。

场=“f”;value = {“一些文字”;[10,20,30];魔术(5)};s = struct(字段,值)
s =3×1结构数组与字段:F

查看每个元素的内容。

S.F.
Ans = 'some text'
ans =.1×310 20 30.
ans =.5×517 24 18 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9

当您访问非卡拉尔结构的字段时,例如S.F., MATLAB®返回一个逗号分隔的列表。在这种情况下,S.F.相当于s(1).f,s(2).f,s(3).f

创建包含几个字段的非卡尔结构。

Field1 =“f1”;value1 = 0 (10);field2 =“f2”;value2 = {“一个”“b”};field3 =‘f3’;Value3 = {pi, pi.^2};field4 =“f4”;value4 = {'第四'};s = struct(field1,value1,field2,value2,field3,value3,field4,value4)
s =1×2带有字段的结构数组:F1 f2 f3 f4

单元格阵列价值2.value3.1×2,所以S.也是1-by-2。因为value1.是一个数字数组,而不是单元格数组s(1).f1s(2).f1具有相同的内容。类似地,因为单元格数组价值4.有一个元素,s(1).f4s(2).f4具有相同的内容。

(1)
ans =.结构与字段:F1: [0 0 0 0 0 0 0 0 0] f2: 'a' f3: 3.1416 f4: '第四'
(2)
ans =.结构与字段:F1:[0 0 0 0 0 0 0 0 0] F2:'B'F3:9.8696 F4:'第四'

创建一个包含空字段的结构。使用[]指定空字段的值。

s =结构(“f1”“一个”“f2”,[])
s =结构与字段:F1:'A'F2:[]

创建一个包含单元格数组的字段的结构。

场=“mycell”;value = {{“一个”“b”“c”}};s = struct(字段,值)
s =结构与字段:Mycell: {'a' 'b' 'c'}

创建一个包含几个字段的空结构。

s =结构(“一个”,{},“b”,{},“c”,{})
S = 0x0 null struct array with fields: a b c

为空结构中的字段赋值。

s(1).a =“一个”
s =结构与字段:A:'A'B:[] C:[]

创建嵌套结构,在哪里一种是具有包含另一结构的字段的结构。

a.b =结构(“c”,{},' d ',{})
A =结构与字段:B:[0x0 struct]

查看字段的名称A.B.

字段名(a.b)
ans =.2 x1细胞{' c '} {' d '}

兼容性考虑因素

全部展开

R2019A中的行为发生了变化

扩展功能

在R2006A之前介绍