我按照说明here。 我在fig -file中有数据:
我跑
s = load('filename.fig','-mat');
我获得了许多数据领域:
我想在列表中仅获取-1.5到2范围内的数据。
如何从这样的Matlab数据结构中检索数据?
答案 0 :(得分:1)
我在previous answer中对这个过程暗示了一个不同的问题。如您所知,.fig文件实际上是MAT文件,其中包含指定图形的数据。要将.fig数据加载到MATLAB struct
中,然后访问特定轴和系列的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);
另请参阅this examination of the .fig file format,以获得仅包含一个轴和一个系列的简化示例,因此不使用任何axesNum
和seriesNum
索引。