处理在工作区中加载的Matlab图形数据

时间:2013-11-09 01:17:19

标签: matlab

我按照说明here。 我在fig -file中有数据:

enter image description here

我跑

s = load('filename.fig','-mat');

我获得了许多数据领域:

enter image description here

我想在列表中仅获取-1.5到2范围内的数据。

如何从这样的Matlab数据结构中检索数据?

1 个答案:

答案 0 :(得分:1)

我在previous answer中对这个过程暗示了一个不同的问题。如您所知,.fig文件实际上是MAT文件,其中包含指定图形的数据。要将.fig数据加载到MATLAB struct中,然后访问特定轴和系列的XDataYData属性(可以有多个轴和系列):

>> 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,以获得仅包含一个轴和一个系列的简化示例,因此不使用任何axesNumseriesNum索引。

相关问题