主要内容

getfield

结构阵场

描述

例子

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

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

如果年代是非标量的吗getfield返回数组第一个元素中的值,相当于(1) .field

例子

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

例子

值= getfield(年代idx1、……N)指定结构数组的元素。例如,如果(3、4)。A = 1,然后getfield(年代,{3、4},' ')返回1

例子

值= getfield(年代idx1,idx1、……N,idxN)指定字段的元素。例如,如果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。mlx: {'testFunc2. m'} mlapp: {0×1 cell} mlx: {'testFunc2. mmlx'} mat: {2×1 cell} mex: {0×1 cell} mdl: {0×1 cell} slx: {0×1 cell} p: {0×1 cell} classes: {0×1 cell} packages: {0×1 cell}

属性中列出的所有活动脚本的名称mlx字段。当你使用getfield函数时,可以访问函数返回的结构的字段,而无需使用临时变量来保存该结构。

值= getfield(what(“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 = struct(“f”(3 - 4),‘g’“五”);S.h = 50
S =带字段的结构:A: [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: ' 2 ' e: [1x1 struct]
S.a.b.e
ans =带字段的结构:F: [3 4] g: ' 5 '

返回的值S.a.b.d使用getfield函数。当指定以逗号分隔的嵌套结构名列表时,必须在顶部结构和指定的字段名之间的每一层都包含结构。在本例中,以逗号分隔的结构名列表为“一个”、“b”字段名是' d '

值= getfield(S,“一个”“b”' d '
Value = ' 2 '

您还可以使用点表示法来访问相同的字段。

value = S.a.b.d
Value = ' 2 '

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

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

S = dir(“C: \ Temp”
S =5×1包含字段的struct数组:名称文件夹日期字节isdir datenum

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

(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(S,{5},“名字”
value = 'testFunc2.mlx'

作为一种替代方法,索引到结构数组中,然后使用点表示法指定字段。

value = S(5).name
value = 'testFunc2.mlx'

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

首先,创建一个嵌套结构。元素创建结构后,使用点符号创建另一个非标量结构数组结构体函数并将其添加为字段。

S.a = 1;(2) .a.b= struct(' d ',{5、10、20});年代
S =1×2包含字段的struct数组:一个
(2) .a.b
ans =1×3包含字段的struct数组:d

返回的值d的第三个元素b使用getfield函数。必须指定两者的索引年代而且b使用单元格数组。

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

您还可以使用点表示法来访问相同的字段。

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

创建一个具有字段值为数组的结构。

S.a = [5 10 15 20 25]
S =带字段的结构:A: [5 10 15 20 25]

方法返回数组的元素getfield函数。若要返回子数组,请在字段名称后指定索引。必须在单元格数组中指定索引。

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

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

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

输入参数

全部折叠

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

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

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

例子:{1,2}, getfield(年代,' ')等于(1、2)。

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

扩展功能

版本历史

R2006a之前介绍