我正在开发一个具有以下结构的matlab脚本:Parameters1,Parameters2,Parameters3等,直到ParametersN。我想访问每个结构中的两个字段(例如x和y),以便我可以绘制数据。我想覆盖每个参数的x和y数据。
我目前遇到的问题是我不知道如何访问x和y字段。我可以使用strcat获取名称'Parameters1','Parameters2'等但不知道如何使用该字符串来访问该字段。我尝试使用whos('Parameters *')来获取结构名称,但还有其他问题。
text='Parameters'
for z=1:n
S(z)=strcat(text,num2str(z))
x=S{z}.MDT{iDLC}.Time % problematic line
y=S{z}.MDT{iDLC}.RotorSpeed % problematic line
end
谢谢=)
答案 0 :(得分:1)
是获取字段名称还是访问问题字段?
eval命令可用于访问字段,以下内容可以eval('Parameters1.Time')
。
eval([strcat(text, num2str(z)) '.Time'])
让参数像数组一样更好,例如
Parameters(1) = struct("x", 1, "y", 2);
Parameters(2) = struct("x", 2, "y", 4);
然后你发现你不需要strcat,而是可以访问参数(z)。
答案 1 :(得分:0)
您是否尝试过getfield
和fieldnames
。试试
help getfield
和
help fieldnames
答案 2 :(得分:0)
以下是您的代码应该是这样的:
hold all
for t=1:numel(Parameters)
plot(Parameters(t).x,Parameters(t).y)
end
请注意,这意味着您使用Parameters(t)
而不是Parameterst
,这极大地简化了事情并使其更有效。