主要内容

结构体

描述

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

创建

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

s.a. = 1;= {mit获得“一个”“B”“C”
s =结构体字段:a: 1 b: {' a ' ' b ' 'C'}

字段名可以包含ASCII字母(a - z, a - z)、数字(0-9)和下划线,且必须以字母开头。字段名的最大长度为namelengthmax

方法也可以创建结构数组结构体函数,下面描述。可以同时指定多个字段,或者创建非标量结构数组。

描述

s =结构创建不带字段的标量(1乘1)结构。

例子

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

  • 如果价值单元格数组,或者if价值那么,是否是标量单元格数组呢年代是一个标量结构。例如,S = struct('a',[1 2 3])创建1 × 1结构,其中S.a = [1 2 3]

  • 如果价值那么是非标量单元格数组吗年代一个结构数组是否具有相同的尺寸价值.的每个元素年代包含对应的元素价值.例如,s =结构(“x”,{' a ', ' b '})返回(1)。x = a而且(2)。x = ' b '

  • 如果价值是空单元格数组吗{},然后年代是一个空的(0乘0)结构。

例子

s =结构(field1, value1,…,fieldN家)创建具有多个字段的结构数组。

  • 如果没有价值输入是单元格数组,或者全部价值那么单元格数组的输入就是标量年代是一个标量结构。

  • 如果任何价值那么,输入是一个非标量单元格数组年代与单元格数组的尺寸相同。另外,如果两个或两个以上价值输入是非标量单元格数组,那么它们都必须具有相同的维度。

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

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

s =结构([])创建不带字段的空(0乘0)结构。

s =结构(obj的属性对应的字段名和值创建标量结构obj.的结构体函数没有转换obj,而是创造年代作为一种新的结构。该结构不保留类信息,因此私有、受保护和隐藏属性成为中的公共字段年代.的结构体函数在使用此语法时发出警告。

输入参数

全部展开

字段名,指定为字符向量或字符串标量。

值,指定为任何类型的数组。如果有任何价值输入是一个非标量单元格数组,那么所有非标量单元格数组的输入必须具有相同的维数。

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

结构体函数复制的属性obj到新标量结构的字段。

结构体函数不会从大多数基本数据类型创建结构。例如,如果obj字符数据类型,然后结构体发出错误消息。然而,结构体返回表或时间表的属性作为结构。看到基本的MATLAB类获取基本数据类型的列表。

例子

全部折叠

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

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

数据。x = linspace(0, 2 *π);数据。y =罪(data.x);数据。title =“y = sin (x)”
data =结构体字段:X:[0 0.0635 0.1269 0.1904 0.2539 0.3173 0.3808 0.4443 0.5077…]y:[0 0.0634 0.1266 0.1893 0.2511 0.3120 0.3717 0.4298 0.4862…]题目:'y = sin(x)'

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

情节(data.x data.y)标题(data.title)

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

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

场=“f”;值= {“一些文本”;(10年,20年,30);魔法(5)};s =结构(字段,值)
s =3×1带字段的struct数组: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

当您访问非标量结构的字段时,例如顺丰速递, MATLAB®返回一个逗号分隔的列表。在这种情况下,顺丰速递相当于(1)。f,(2)。f,年代(3).f

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

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

的单元格数组value2而且value31×2,所以年代也是1×2。因为value1数值数组和单元格数组都是吗(1) .f1而且(2) .f1内容相同。类似地,因为单元格数组为value4只有一个元素,(1) .f4而且(2) .f4内容相同。

(1)
ans =结构体字段:F1: [0 0 0 0 0 0 0 0 0 0 0 0 0] f2: 'a' f3: 3.1416 f4: 'fourth'
(2)
ans =结构体字段:F1: [0 0 0 0 0 0 0 0 0 0 0 0 0] f2: 'b' f3: 9.8696 f4: 'fourth'

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

s =结构(“f1”“一个”“f2”[])
s =结构体字段:F1: 'a' f2: []

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

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

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

s =结构(“一个”{},“b”{},“c”{})
S = 0x0包含字段的空结构数组:a b c

为空结构中的字段赋值。

(1)。一个=“一个”
s =结构体字段:A: ' A ' b: [] c: []

创建一个嵌套结构,其中一个是具有包含另一个结构的字段的结构。

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

的字段名a.b

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

扩展功能

版本历史

之前介绍过的R2006a

全部展开

Baidu
map