1

matlab にあるプロットされたグラフからデータを抽出したいと考えています。そのため、次のことを行いました。

f = openfig('spline.fig');
xdata = get(gco, 'xdata');
ydata = get(gco, 'ydata');

xこれにより、それぞれ とのデータ ポイントが得られますが、各ポイント間yのステップが0.5異なります (例: 1、1.5、2、2.5...)。それよりも細かいデータ ポイント (たとえば、1、1.1、1.2、1.3、1.4...) と、これらの x 座標に対応する y 座標を取得したいと考えていました。これどうやってするの?

4

1 に答える 1

6

あなたが得た方法ydataは私にはうまくいきませんでした。

open testfigure.fig 
D = get(gca, 'Children');
ydata = get(D, 'YData'); 

得られたydataI には、図のプロットに使用された元の y データが含まれています。

ここで、データのより細かい解像度が必要な場合は、それを自分で補間する必要があります。ydataこれを 0.1 の解像度に補間する方法の短い例を次に示します。

  1. 新しい x 値 xi を定義して、y 値を見つけます

    xi = 0:0.1:10;
    
  2. ydataで新しいyi値を見つけるために補間しますxi:

    yi = interp1(xdata, ydata, xi); %// Using the default "linear"
    

使用したい方法の種類 (例えば、 最近傍スプライン) を読む必要があります。これは、データと要件によって異なります。

于 2013-09-11T08:03:15.317 に答える