主要内容

setfield.

为结构阵列字段分配值

描述

例子

s = setfield(S.场地价值为结构的指定字段分配值S.。例如,s = setfield(s,'a',1)赋予作业S.A = 1

作为替代品setfield.,使用DOT表示法:S.Field = Value.。点表示法通常更有效。

如果S.那么没有指定的字段setfield.创建它并分配价值到它。

例子

s = setfield(S.场地1,......,场地n,价值为嵌套结构的指定字段分配值。例如,s = setfield(s,'a','b','c',1)赋予作业s.a.b.c = 1,领域在哪里S.A.S.A.B.也是结构。

例子

s = setfield(S.idx.场地1,......,场地n,价值指定一个元素S.并为其其中一个字段分配值。例如,s = setfield(s,{3,4},'a',1)赋予作业s(3,4).a = 1

例子

s = setfield(S.idx.场地1,idx.1,......,场地n,idx.n,价值指定字段的元素。例如,s = setfield(s,'a',{2},1)赋予作业S.A(2)= 1。相似地,s = setfield(s,{3,4},'a',{2},'b',1)赋予作业s(3,4).a(2).b = 1

例子

全部收缩

创建标量结构。

S.X = Linspace(0,2 * Pi);S.Y = SIN(S.X);s.title =''
S =结构与字段:X:[1x100双] Y:[1x100双]标题:''

使用该值为字段分配值setfield.功能。

s = setfield(s,'标题''y = sin(x)'
S =结构与字段:x:[1x100双] y:[1x100双]标题:'y = sin(x)'

为另一个字段分配一个值。如果指定一个不存在的字段,则setfield.创造它。

e = sqrt(abs(s.y));s = setfield(s,'sqrty',e)
S =结构与字段:x:[1x100双] y:[1x100双]标题:'y = sin(x)'sqrty:[1x100双]

您还可以使用点表示法为字段分配值。

s.title ='y = sin(x),错误栏值'
S =结构与字段:x:[1x100双] y:[1x100双]标题:'y = sin(x),错误栏值'sqrty:[1x100双]

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

s.a.b.c = 1;s.a.b.d = 2;s.a.b.e = struct('F',[3 4],'G'5);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:2 E:[1x1结构]
S.A.B.E.
ans =.结构与字段:F:[3 4] G:5

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

s = setfield(s,'一种''B''D',1024);S.A.B.
ans =.结构与字段:C:1 D:1024 E:[1x1结构]

您还可以使用点表示法来分配值。

s.a.b.d = 2048;S.A.B.
ans =.结构与字段:C:1 D:2048 E:[1x1结构]

为结构阵列的元素字段分配值。

首先,创建一个结构阵列。与所有结构阵列一样,每个元素都是具有相同字段的结构。

S.X = Linspace(0,2 * Pi);S.Y = SIN(S.X);s(2).x = s.x;s(2).y = cos(s(2).x)
S =1×2结构阵列与字段:X Y.

您还可以使用setfield.。如果一个字段不存在,setfield.创造它。创建一个名为的字段标题

s = setfield(s,{1},'标题''y = sin(x)'
S =1×2结构阵列与字段:x y标题

setfield.函数为单个元素的字段分配值,但输出参数是整个结构阵列。

显示第一个元素S.

s(1)
ans =.结构与字段:x:[1x100双] y:[1x100双]标题:'y = sin(x)'

作为替代,索引到结构阵列中,然后使用点表示法为元素的字段分配值。

s(2).title ='y = cos(x)';s(2)
ans =.结构与字段:x:[1x100双] y:[1x100双]标题:'y = cos(x)'

为嵌套结构的字段分配值,其中某些级别的结构是结构阵列。在这个例子中,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.

显示第三个元素s(2).a.b

s(2).b(3)
ans =.结构与字段:D:20

为该字段分配一个新值D.s(2).b(3)使用setfield.功能。使用更新的字段显示结构。

s = setfield(s,{2},'一种''B',{3},'D',3.1416);s(2).b(3)
ans =.结构与字段:D:3.1416.

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

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

为元素分配值S.A.使用setfield.功能。要为特定元素分配值,请在字段名称后指定索引。您必须在单元格数组中指定索引。但是,在数据类型与字段的数据类型匹配的数组中指定新值。

s = setfield(s,'一种',{3:5} [0 -50 -100])
S =结构与字段:答:[5 10 0 -50 -100]

您还可以使用点表示法和数组索引来为同一元素分配值。

S.A(3:5)= [20 40 80]
S =结构与字段:答:[5 10 20 40 80]

输入参数

全部收缩

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

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

指定指定为数字或逻辑值的单元格数组。指数S.和领域1通过N-1指定结构阵列的单个元素。领域的指数N.指定该字段中数组的一个或多个元素,可以是任何类型的字段。

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

例子:如果S.A = [5 10 20], 然后s = setfield(s,'a',{[2,3]},[50 100])相当于S.A(2:3)= [50 100]

值,指定为具有任何大小的任何类型的数组。

在R2006A之前介绍