2011-09-13 8 views
2

[t1 ; x][t2 ; y]の2つのデータセットがあります。tは両方とも同じ範囲にありますが、異なる値をとる可能性があります。簡単な例:Matlabのパラメータ式をプロットする

[t1 ; x] = 
    1  2  4 
    1  4 16 

[t2 ; y] = 
    1  3  5 
    1  9 25 

ここで基礎となる機能は単純です:x = t1.^2y = t2.^2。私の目標は、yに対してxのプロットを得ることです。 tの値は同じではないので、単にplot(x,y)を使用することはできません。例えば、x == y以来、私は斜面1の行を取得する必要がありますが、plot(x,y)はまっすぐではなく、どちらの作品はスロープ1

を持つアプリケーションは、この簡単な例よりもはるかに複雑であり、私が持っていませんデータポイントを生成する基礎となる関数。データは時々疎であるので、私はt1t2の間に共通しない点を投げ捨てて情報を失うことはできません。

私は、Matlabに2つのデータセットをとり、とyの依存関係を抽出して、目に見えないパラメータとして残すことを望んでいます。誰でもそのような機能を知っていますか?それに代わって、私は良いものを書くための良い方法の提案を受けています。

答えて

2

私はこのためにスプラインを使用することをお勧めします。

tx考える

xtyy、あなたは時間点の範囲でySPLINEのコマンドを使用してtimeRange次のようxのグラフを生成できます。基礎となるデータがノイズが多い場合

xx = spline(tx,x,timeRange); %# interpolate x vs time 
yy = spline(ty,y,timeRange); %# interpolate y vs time 

plot(xx,yy); 

をしかし、スムージングスプライン(例えばCSAPS)を使用したい場合がありますが、これにはカーブフィッティングツールボックスが必要です。

+0

私はこれの音が好きです。 timeRangeをtxとtyの和集合に設定すると、すべてのデータを組み込む必要があります。私はそれを行ってあげるよ。ありがとう。 – PengOne

+0

@PengOne: 'timeRange'に' tx'と 'ty'の最小値と最大値がそれぞれ含まれている限り、すべてのデータを組み込みます。スムーズなカーブを得るために、 'timeRange'にポイントをより密に配置することができます。あなたの上の例では '1:0.1:5'のようなものです。 – Jonas

関連する問題