こちらの指示に従いました。fig ファイルにデータがあります:
走る
s = load('filename.fig','-mat');
多くのデータ フィールドを取得します。
リストで-1.5~2の範囲のデータだけを取得したいです。
このような Matlab データ構造からどのようにデータを取得できますか?
別の質問に対する以前の回答で、このプロセスをほのめかしました。ご存じのとおり、.fig ファイルは、実際には Figure を指定するデータを含む 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);
1 つの軸と 1 つのシリーズのみを使用する単純化された例については、この .fig ファイル形式の調査も参照してください。したがってaxesNum
、seriesNum
インデックスは使用されません。