setfield

将值分配给结构阵列字段

描述

S = setfield(小号领域分配一个值到所述结构的指定字段小号。例如,S = setfield(S, 'A',1)使得分配S.A = 1

作为一种替代setfield,使用点表示法:S.field =值。点符号是通常更有效。

如果小号没有指定字段,然后setfield创建它和受让人给它。

S = setfield(小号领域1,...,领域N,分配一个值,以嵌套结构的指定字段。例如,S = setfield(S, 'A', 'B', 'C',1)使得分配S.a.b.c = 1,其中字段S.AS.a.b同样的结构。

S = setfield(小号IDX领域1,...,领域N,指定的一个元素小号和分配一个值到它的领域之一。例如,S = setfield(S,{3,4}, 'A',1)使得分配S(3,4).A = 1

S = setfield(小号IDX领域1,IDX1,...,领域N,IDXN,指定字段的元素。例如,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:[1×100双] Y:[1×100双]标题: ''

使用一个值分配给字段setfield功能。

S = setfield(S,'标题''Y =的sin(x)'
S =同场的结构:X:[1×100双] Y:[1×100双]标题: 'Y =的sin(x)'

值分配给另一个领域。如果指定的字段不存在,则setfield创建它。

E = SQRT(ABS(S.y));S = setfield(S,'sqrty',E)
S =同场的结构:X:[1×100双] Y:[1×100双]标题: 'Y =的sin(x)' sqrty:[1×100双]

您还可以将值分配给使用点符号的字段。

S.title ='Y =的sin(x)中,用误差线值'
S =同场的结构:X:[1×100双] Y:[1×100双]标题: 'Y =的sin(x)中,用误差棒值' sqrty:[1×100双]

创建一个嵌套的结构。在嵌套结构,在任何级别的结构可以具有结构是,和其他领域中不结构域。

S.a.b.c = 1;S.a.b.d = 2;S.a.b.e =结构('F',[3 4],'G',5);S.H = 50
S =同场的结构:一:[1×1结构] H:50

小号是一个结构,该字段S.AS.a.bS.a.b.e同样的结构。

S.A
ANS =同场的结构:B:[1x1的结构]
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(1)
ANS =同场的结构:X:[1×100双] Y:[1×100双]标题: 'Y =的sin(x)'

作为替代,索引到结构阵列,然后用点标记的值分配给一个元素的字段。

S(2)= .title伪'Y = COS(X)';S(2)
ANS =同场的结构:X:[1×100双] Y:[1×100双]标题: 'Y = COS(X)'

一个值分配给一个嵌套结构的一个字段,其中在某些级别的结构是结构阵列。在这个例子中,小号是一个1×2结构阵列。第二元件,S(2),具有嵌套结构A·B,其中b是一个1×3结构阵列。

首先,创建一个嵌套的结构。使用点符号创建结构后,使用创建另一个非标量结构阵列结构功能并将其添加为一个字段。

S.A = 1;S(2)= .a.b结构('d',{5,10,20});小号
S =1×2结构阵列字段:一个
S(2).a.b
ANS =1×3结构阵列字段:d

显示的所述第三元件S(2).a.b

S(2).a.b(3)
ANS =同场的结构:d:20

分配一个新的价值领域dS(2).a.b(3)使用setfield功能。显示与更新的字段的结构。

S = setfield(S,{2},'一个''B',{3},'d',3.1416);S(2).a.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]

输入参数

全部收缩

结构数组。如果小号是非标量,则每个的元件小号是一个结构,所有的元素具有相同的名称相同的字段。

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

指数,指定为数字或逻辑值的单元阵列。指数小号和领域1通过N-1指定结构阵列的单个元件。指数领域ñ指定该字段中的阵列,其可以是任何类型的一个或多个元件。

例: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前推出