我按照这里的说明进行操作。我在 fig -file 中有数据:
我跑
s = load('filename.fig','-mat');
我得到了许多数据领域:
我只想在列表中获取 -1.5 到 2 范围内的数据。
如何从这样的 Matlab 数据结构中检索数据?
我在之前对另一个问题的回答中暗示了这个过程。如您所知,.fig 文件实际上是 MAT 文件,其中包含指定图形的数据。要将 .fig 数据加载到 MATLABstruct
中,然后访问特定轴和系列的XData
和属性(您可以有多个轴和系列):YData
>> s = load('filename.fig','-mat');
s =
hgS_070000: [1x1 struct]
>> axesNum = 1; seriesNum = 1;
>> series = s.hgS_070000.children(axesNum).children(seriesNum)
series =
type: 'graph2d.lineseries'
handle: 172.0051
properties: [1x1 struct]
children: []
special: []
>> XData = series.properties.XData;
>> YData = series.properties.YData;
现在你只需要获取你想要的样本:
rangeMask = YData >= -1.5 & YData <= 2;
YDataSub = YData(rangeMask);
XDataSub = XData(rangeMask);
另请参阅对 .fig 文件格式的检查,以获取只有一个轴和一个系列的简化示例,因此不使用任何axesNum
和seriesNum
索引。