Matlab:如何绘制来自 n 个结构的数据
Matlab: How to plot data from n number of structures
我正在编写具有以下结构的 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
谢谢=)
你试过getfield
和fieldnames
了吗?尝试
help getfield
和
help fieldnames
问题是获取字段名称还是访问字段?
可以使用 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,而是可以访问 Parameters(z)。
您的代码可能如下所示:
hold all
for t=1:numel(Parameters)
plot(Parameters(t).x,Parameters(t).y)
end
请注意,这意味着您使用 Parameters(t)
而不是 Parameterst
,这大大简化了事情并提高了效率。
我正在编写具有以下结构的 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
谢谢=)
你试过getfield
和fieldnames
了吗?尝试
help getfield
和
help fieldnames
问题是获取字段名称还是访问字段?
可以使用 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,而是可以访问 Parameters(z)。
您的代码可能如下所示:
hold all
for t=1:numel(Parameters)
plot(Parameters(t).x,Parameters(t).y)
end
请注意,这意味着您使用 Parameters(t)
而不是 Parameterst
,这大大简化了事情并提高了效率。