Matlab:无法创建结构:无效的字段名

Matlab:无法创建结构:无效的字段名,matlab,struct,Matlab,Struct,假设我正在Matlab中创建以下结构: spec.Property1 = 0 spec.Property2 = 0 spec.Property3.Name = 0 spec.Property3.Something = '' 它正在工作,我得到了我期望的结构: Property1: 0 Property2: 0 Property3: [1×1 struct] 假设我想这样做: nameOfNewStruct1 = 'Property1' nameOfNewStruct2 = 'Property

假设我正在Matlab中创建以下结构:

spec.Property1 = 0
spec.Property2 = 0
spec.Property3.Name = 0
spec.Property3.Something = ''
它正在工作,我得到了我期望的结构:

Property1: 0
Property2: 0
Property3: [1×1 struct]
假设我想这样做:

nameOfNewStruct1 = 'Property1'
nameOfNewStruct2 = 'Property2'
nameOfNewStruct3 = 'Property3.Name'
nameOfNewStruct4 = 'Property3.Something'

spec.(nameOfNewStruct1) = 0
spec.(nameOfNewStruct2) = 0
spec.(nameOfNewStruct3) = 0
spec.(nameOfNewStruct4) = ''

Invalid field name: 'Property3.Name'.
为什么它不起作用?如果我想使用'Something.Something'字符,是否需要更改设置


谢谢

从2011年20点左右的Loren check评论来看,这是什么?以您尝试的方式,这是不可能的。一个简单的解决方案是执行与规范“Property3”“Name”相同的操作。 如何以与您类似的方式,任意深度地完成,将在后面的评论中回答

A.l1.l2.l3.l4 = 1234;
fieldname = 'l1.l2.l3.l4';
eval(['A.',fieldname])

似乎在Octave Online中工作得很好。谢谢,问题是我希望它是通用的,因为我的Matlab脚本不知道会出现什么“structs”