主要内容

Getfield.

结构阵列领域

描述

例子

value = getfield(S.场地返回结构的指定字段中的值S.。例如,如果S.A = 1, 然后Getfield(S,'A')回报1

作为替代品Getfield.,使用点表示法,value = s.field.。点表示法通常更有效。

如果S.那么是非卡尔尔,那么Getfield.返回数组的第一个元素中的值,相当于s(1)。菲尔德

例子

value = getfield(S.场地1,......,场地ñ)返回存储在嵌套结构中的值。例如,如果s.a.b.c = 1, 然后getfield(s,'a','b','c')回报1

例子

value = getfield(S.idx.场地1,......,场地ñ)指定结构阵列的元素。例如,如果s(3,4).a = 1, 然后Getfield(s,{3,4},'a')回报1

例子

value = getfield(S.idx.场地1,idx.1,......,场地n,idx.ñ)指定字段的元素。例如,如果S.A(2)= 1, 然后getfield(s,'a',{2})回报1。同样,如果s(3,4).a(2).b = 1, 然后Getfield(s,{3,4},'a',{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'}

您还可以使用DOT表示法访问一个字段。

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 =结构与字段:答:[1x1 struct] h:50

尽管S.是一个结构,田野S.A.S.A.B., 和S.A.B.E.也是结构。

S.A.
ans =.结构与字段:B:[1x1 struct]
S.A.B.
ans =.结构与字段:C:1 D:'两个'E:[1x1 struct]
S.A.B.E.
ans =.结构与字段:F:[3 4] G:'五'

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

value = getfield(s,'一种''B''D'
价值='二'

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

value = s.a.b.d.
价值='二'

从返回的结构数组的元素获取字段的值谜语功能。谜语返回一个结构阵列,其元素每个元素包含有关指定文件夹中文件的信息。

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

s = dir('c:\ temp'
S =5×1结构数组与字段:名称文件夹日期字节ISDIR数据

要显示有关第5个文件,索引的信息S.

S(5)
ans =.结构与字段:名称:'testfunc2.mlx'文件夹:'c:\ temp'日期:'19 -jul-2018 09:43:53'字节:2385 ISDIR:0数据:7.3726E + 05

返回第5个元素描述的文件的名称S.使用Getfield.功能。当你使用时Getfield.,在单元格数组中指定索引。

value = getfield(s,{5},'名称'
value ='testfunc2.mlx'

作为替代方案,索引到结构阵列中,然后使用点表示法来指定字段。

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

访问嵌套结构的字段,其中某些级别的结构是结构阵列。在这个例子中,S.是一个1×2结构阵列。第二个元素,s(2),有一个嵌套的结构A.B., 在哪里B.是一个1-by-3结构阵列。

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

S.A = 1;s(2).a.b = struct('D',{5,10,20});S.
S =1×2结构阵列与字段:一种
s(2).a.b
ans =.1×3结构阵列与字段:D.

返回值D.从第三个要素B.使用Getfield.功能。您必须指定两者的指数S.B.使用单元格阵列。

value = getfield(s,{2},'一种''B',{3},'D'
价值= 20.

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

value = s(2).b(3).d
价值= 20.

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

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

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

value = getfield(s,'一种',{[2:4]})
价值=1×3.10 15 20.

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

value = s.a(2:4)
价值=1×3.10 15 20.

输入参数

全部收缩

结构阵列。如果S.是非卡尔,然后是每个元素S.是一个结构,所有元素都具有相同的字段,具有相同的名称。

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

指定指定为数字或逻辑值的单元格数组。指数S.和字段1到N-1指定结构阵列的元素。字段n指定指定该字段中数组的元素,可以具有任何类型。

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

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

在R2006A之前介绍