1

こちらの指示に従いました。fig ファイルにデータがあります:

ここに画像の説明を入力

走る

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

多くのデータ フィールドを取得します。

ここに画像の説明を入力

リストで-1.5~2の範囲のデータだけを取得したいです。

このような Matlab データ構造からどのようにデータを取得できますか?

4

1 に答える 1

1

別の質問に対する以前の回答で、このプロセスをほのめかしました。ご存じのとおり、.fig ファイルは、実際には Figure を指定するデータを含む 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);

1 つの軸と 1 つのシリーズのみを使用する単純化された例については、この .fig ファイル形式の調査も参照してください。したがってaxesNumseriesNumインデックスは使用されません。

于 2013-11-09T01:41:12.490 に答える