setfield

将值分配给结构阵列字段

描述

例子

S = setfield(S公司,领域,)为结构的指定字段赋值S公司. 例如,S=设定域(S,'a',1)完成任务S.A = 1.

作为替代品setfield,使用点表示法:S、 字段=值. 点表示法通常更有效。

如果S公司没有指定字段,然后setfield创建并分配为了它。

例子

S = setfield(S公司,领域1,。。。,领域N,)分配一个值,以嵌套结构的指定字段。例如,S = setfield(S, 'A', 'B', 'C',1)完成任务S、 a.b.c=1,其中字段S.AS.a.b也是结构。

例子

S = setfield(S公司,国际直拨电话,领域1,。。。,领域N,)指定元素S公司并为其中一个字段赋值。例如,S=设置域(S,{3,4},'a',1)完成任务S(3,4).a=1.

例子

S = setfield(S公司,国际直拨电话,领域1个,国际直拨电话1,。。。,领域N,国际直拨电话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 double]y:[1x100 double]标题:''

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

S = setfield(S,'标题',‘y=sin(x)’)
S =同场的结构:x: [1x100 double]y:[1x100 double]标题:“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: [1x100 double]y:[1x100 double]标题:“y=sin(x),带错误条值”sqrty:[1x100 double]

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

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公司是一个结构,该字段S.A,S.a.bS.a.b.e也是结构。

S.A
答复=同场的结构:B:[1x1的结构]
S.a.b
答复=同场的结构:c: 1d:2e:[1x1结构]
S.a.b.e
答复=同场的结构:f: [34]克:5

将值赋给S.a.b.d使用setfield功能。指定以逗号分隔的嵌套结构名称列表时,请在指定的字段名和顶部之间的每个级别上包含结构名称。在本例中,结构名称的逗号分隔列表是“a”、“b”字段名是“d”.

S = setfield(S,“一”,“b”,“d”,1024);S.a.b
答复=同场的结构:C:1 d:1024 E:[1x1的结构]

您也可以使用点符号来赋值。

S、 公元2048年;公元2048年
答复=同场的结构: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)节
答复=同场的结构:x: [1x100 double]y:[1x100 double]标题:“y=sin(x)”

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

S(2)= .title伪'y=cos(x)';第(2)节
答复=同场的结构:X:[1×100双] Y:[1×100双]标题: 'Y = COS(X)'

为嵌套结构的字段赋值,其中某些级别的结构是结构数组。在这个例子中,S公司是一个1乘2结构数组。第二个元素,第(2)节,具有嵌套结构a、 乙,其中是一个1×3结构阵列。

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

S、 a=1;S(2).a.b=结构(“d”,{5,10,20};秒
S公司=1×2结构阵列字段:
S(2).a.b
答复=带字段的1×3结构数组:

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

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

为字段指定新值S(2).a.b(3)使用setfield功能。显示带有更新字段的结构。

S=setfield(S,{2},“一”,“b”,{3},“d”,3.1416);第(2)节a.b(3)
答复=同场的结构: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 =同场的结构:a: [5 10 0-50-100]

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

S.A(3:5)= [20 40 80]
S =同场的结构:a: [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前推出