主要内容

Getfield.

结构阵列场

描述

例子

值= getfield (年代返回结构的指定字段中的值年代.例如,如果S.A = 1,然后getfield (S, a)返回1

作为替代方案Getfield.,使用点表示法,值= S.field.点表示法通常更有效。

如果年代nonscalar,那么Getfield.返回数组第一个元素中的值,相当于(1) .field

例子

值= getfield (年代1、……ñ)返回存储在嵌套结构中的值。例如,如果S.a.b.c = 1,然后getfield (S, a, b, c)返回1

例子

值= getfield (年代idx1、……ñ)指定结构阵列的元素。例如,如果(3、4)。一个= 1,然后Getfield(s,{3,4},'a')返回1

例子

值= getfield (年代idx1,idx1、……n,idxñ)指定字段的元素。例如,如果S.A(2)= 1,然后getfield(s,'a',{2})返回1.类似地,如果(3、4)。(2)。b = 1,然后getfield(年代,{3、4},“,{2},“b”)返回1

例子

全部折叠

控件返回的结构中获取字段的值什么函数。什么返回一个标量结构,其中的字段包含指定文件夹的路径和文件夹中各种文件的名称。

s =什么(“C: \ Temp”
S =结构体字段:路径:'c:\ temp'm:{'testfunc1.m'} mlapp:{0×1 cell} mlx:{'testfunc2.mlx'} mat:{2×1 cell} mex:{0×1个单元}MDL:{0×1 Cell} SLX:{0×1 Cell} P:{0×1 Cell}类:{0×1个单元格}包:{0×1个单元格}

返回列出的所有实时脚本的名称mlx场地。当你使用的时候Getfield.函数时,可以访问由函数返回的结构的字段,而无需使用临时变量保存该结构。

value = getfield(什么(“C: \ Temp”),'mlx'
值=1×1个单元阵列{' testFunc2.mlx '}

您还可以使用点表示法访问字段。

value = s.mlx.
值=1×1个单元阵列{' testFunc2.mlx '}

访问嵌套结构的字段。在嵌套结构中,任何级别的结构都可以具有结构的字段,以及非结构的其他字段。

首先,创建一个嵌套结构。

S.a.b.c = 1;S.a.b.d =“两个”;S.a.b.e =结构(“f”,[3 4],‘g’'五');S.H = 50.
S =结构体字段:答:[1x1 struct] h:50

尽管年代是结构,是字段S.A.S.A.B., 和S.A.B.E.也是结构。

S.A.
ans =结构体字段:B:[1x1 struct]
S.A.B.
ans =结构体字段:C: 1 d: 'two' e: [1x1 struct]
S.A.B.E.
ans =结构体字段:F: [4] g: '五'

返回值S.A.B.D.使用Getfield.函数。当您指定符合嵌套结构名称的分隔列表时,必须包含顶部结构与您指定的字段名称之间的每个级别的结构。在这种情况下,逗号分隔的结构名称列表是“一个”、“b”字段名是' d '

值= getfield(年代,“一个”“b”' d '
值=“2”

您还可以使用点符号来访问相同的字段。

值= S.a.b.d
值=“2”

控件返回的结构数组的元素中获取字段的值dir函数。dir返回一个结构数组,该数组的每个元素都包含有关指定文件夹中的文件的信息。

返回文件夹中文件的信息C: \ Temp.文件夹里有5个文件。

s = dir(“C: \ Temp”
S =5×1结构数组与字段:名称文件夹日期字节isdir datenum

要显示关于第5个文件的信息,索引到年代

S(5)
ans =结构体字段:名称:“testFunc2。mlx' folder: 'C:\Temp' date: '19-Jul-2018 09:43:53' bytes: 2385 isdir: 0 datenum: 7.3726e+05

返回第5个元素描述的文件的名称年代使用Getfield.函数。当你使用Getfield.,指定单元格数组中的索引。

值= getfield(年代,{5},'名称'
value ='testfunc2.mlx'

作为一种替代方法,在结构数组中建立索引,然后使用点符号来指定字段。

value = s(5).name
value ='testfunc2.mlx'

访问嵌套结构的字段,其中某些级别的结构是结构阵列。在这个例子中,年代是一个1 × 2结构的数组。第二个元素,(2),有一个嵌套的结构a.b,在那里b是一个1 × 3结构的数组。

首先,创建一个嵌套结构。使用点表示法创建结构后,使用该结构使用另一个非划分结构阵列结构体函数并将其作为字段添加。

s.a. = 1;s(2).a.b= struct(' d ',{5、10、20});年代
S =1×2结构阵列与字段:一个
s(2).a.b
ans =1×3 struct数组与字段:d

返回值d从第三个要素b使用Getfield.函数。必须指定两者的索引年代b使用单元格阵列。

值= getfield(年代,{2},“一个”“b”{3},' d '
值= 20

您还可以使用点符号来访问相同的字段。

值= S (2) .a.b (3) .d
值= 20

创建具有字段的结构,其值是数组。

S.A = [5 10 15 20 25]
S =结构体字段:答:[5 10 15 20 25]

属性返回数组的元素Getfield.函数。要返回子阵列,请在字段名称后指定索引。您必须在单元格数组中指定索引。

值= getfield(年代,“一个”, {[2:4]})
值=1×310 15 20

您还可以使用点符号和数组索引来访问相同的元素。

值= s.a. (2:4)
值=1×310 15 20

输入参数

全部折叠

结构数组。如果年代是非标量,那么每个元素年代是一个结构,所有元素都具有相同的字段,具有相同的名称。

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

指定指定为数字或逻辑值的单元格数组。指数年代字段1到N-1指定结构数组的元素。字段N的索引指定该字段中的数组元素,可以是任何类型。

例子:{1,2}, getfield(年代,' ')相当于s(1,2).a

例子:如果S.a = [5 10 20],然后getfield (S, a,{[2、3]})返回20 [10]

在R2006A之前介绍