我有这样的结构
A.b.c.xx
A.b.d.xx
并希望将子结构存储在字符串或其他任何类似的
中s = 'b.c'
现在我想以下列方式访问结构的子字段:
test = A.(s).xx
这可能,我该怎么做?
答案 0 :(得分:4)
结构中的字段名可以直接输入(例如A.b
),也可以通过字符串变量输入(例如name = 'b'
,A.(name)
)。但是你不能指定name = 'b.c'
,因为我猜你已经想通了。因此,您必须使用
A.(s(1)).(s(3))
这可能对简单案例有所帮助,但不是很一般。要evade eval
仍具有更大的灵活性,您可以使用getfield
函数并使用strsplit
在字符串s
中查找不同的字段名称。
fields = strsplit(s,'.')
getfield(A,fields{:},'xx')
答案 1 :(得分:0)
是的,有可能,这样做:
eval(['A.' s '.xx'])