我正在尝试将下面的 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 时,这似乎需要做很多工作,因为它涉及到对更多 octave 库函数的大量调用。它首先计算 Vandermonde 矩阵,然后对其执行一些 QR 分解,并计算向量的范数等......
- 我可以利用哪些其他选项/处理来获得类似的功能(上面发生的实际操作的近似值),但使用一些更简单的曲线拟合或插值方法。
任何指针都会很有用。