0

以下のようなデータを含むcsvファイルがあります:[1行目はヘッダーです]

Element,State,Time
Water,Solid,1
Water,Solid,2
Water,Solid,3
Water,Solid,4
Water,Solid,5
Water,Solid,2
Water,Solid,3
Water,Solid,4
Water,Solid,5
Water,Solid,6
Water,Solid,7
Water,Solid,8
Water,Solid,7
Water,Solid,6
Water,Solid,5
Water,Solid,4
Water,Solid,3

State についても同様のパターンが繰り返されます。"Solid" は Liquid と Gas に置き換えられます。さらに、要素「水」は他の要素に置き換えることもできます。整数としての時間は (単純化するために) 秒単位ですが、任意の実数にすることができます。さらに、ファイル間に # で始まるコメント行がある場合があります。

問題の説明: 時間値の最初の落ち込みをなくし、二次補間、3 次補間、または多項式補間を使用して平滑化したい [5->2 --->8 からの最初の変化に注意してください。これらの数値を中間値に置き換えて、5 ---> 8 から徐々に/スムーズに増加させたい]。

そして、要素と状態のすべての組み合わせに対してこれが行われることを望みます.

これは、Matlabなどで何らかのコーディングを行うことで可能ですか?

どんなポインタも役に立ちます!!

前もって感謝します :)

4

2 に答える 2

1

ここには多くのオプションがありますが、それは実際にはデータの性質に依存しますが、単純な移動平均 (MA) フィルター (各データ ポイントを隣接するデータ ポイントの平均に置き換える) から始めます。それは私を連れて行きます。実装は簡単で、通常は一部のサンプル データで MA スパンを数回微調整するだけで十分です。

http://www.mathworks.se/help/curvefit/smoothing-data.html

本当に圧縮する必要がない限り、多項式をデータ セット全体に当てはめようとはしません (ただし、そのためにはpolyfit関数を使用できます)。

于 2013-03-11T21:45:52.840 に答える
1

interp1この関数を 1D 補間に使用できます。構文は次のとおりです。

yi = interp1(x,y,xi,method)

x元の座標、yは元の値、xiは値を補間する座標、 は補間されyiた値です。(3 次スプライン補間)、(区分エルミート)、(3 次多項式) などがあります (詳細については、ドキュメントを参照してください) method'spline''pchip''cubic'

于 2013-03-11T20:36:55.293 に答える