1

我按照这里的说明进行操作。我在 fig -file 中有数据:

在此处输入图像描述

我跑

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

我得到了许多数据领域:

在此处输入图像描述

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

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

4

1 回答 1

1

我在之前对另一个问题的回答中暗示了这个过程。如您所知,.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 文件格式的检查,以获取只有一个轴和一个系列的简化示例,因此不使用任何axesNumseriesNum索引。

于 2013-11-09T01:41:12.490 回答