以下のmatlab/octave関数をCに変換しようとしています(従来の方法-matlab関数を理解し、最初からCでコーディングします)。これは、多項式フィッティングを使用してデータをガウス曲線にフィッティングしています。
function y=func(data)
N=128;
y1=gausswin(N,4);
x1=[0:1/N:1-1/N]';
P=polyfit(x1,y1,12);
y=polyval(P,data);
しかし、関数polyfitを確認したところ、さらにオクターブライブラリ関数への呼び出しが多く含まれているため、多くの作業が必要であるように見えました。最初にファンデルモンド行列を計算し、次にそれのQR分解を実行し、ベクトルのノルムなどを計算します。
- 同様の機能(上記で行われている実際の操作の近似)を使用するために利用できる他のオプション/処理はありますが、いくつかのより単純なカーブフィッティングまたは補間方法を使用します。
任意のポインタが役立ちます。