我对MATLAB和它的语法比较陌生。
在R中,我们可以生成一个数据集来进行建模:
> x <- seq(1:100)
> x <- jitter(x,amount=.3)
> y <- seq(1:100)
> y <- sin(y)
> y <- jitter(y)
我们现在有一些从1到100之间的抖动x值,y值大约遵循sin曲线。
现在,我们可以使用nls来拟合模型:
model <- nls(y ~ a + b*x + c*sin(d*x+e), start = c(a=0, b = 1, c = 1,d=1,e=0))
我有一个3D网格/表面(我可能用错了这个术语),即我有x,y和z的数据,
z = f(x,y)
我想让MATLAB对这些数据拟合三次(或其他)样条曲线,然后我想提取实际的数学样条函数,这样我就可以自己编写代数函数,
z = my_mathematical_spline_curve_function(x,y)
而不是使用sfit对象。我知道我可以使用MATLAB的拟合工具,通过多项式曲线拟合来实现这一点,然后提取系数。我也想做同样的事情,但我需要样条曲线;多项式曲线不能很好地拟合数据。这可以在MATLAB中实现吗?
利用MATLAB曲线拟合工具进行样条平滑拟合,并由此生成函数。如何访问Y fit值,以便将它们输出到文件中?似乎我只看到了x值,和所有的厨师从适配。这是matlab的代码。谢谢!
function [fitresult, gof] = createFit(Freq, AmplNew)
%CREATEFIT(FREQ,AMPLNEW)
% Create a fit.
%
% Data for 'untitled fit 1' fit:
% X Input : Freq
% Y Output: AmplNew
% Output:
% fitres
我正在使用Matlab的曲线拟合工具cftool来拟合我拥有的一组点。我面临的问题是,生成代码函数不会给我提供与cftool中生成的代码相同的适合度。
这不是我想要的,因为我希望能够从残差图中检索数据。我也可以直接从cftool复制函数,然后手动完成。但我不明白为什么生成的代码不能给我同样的曲线拟合。
cftool会话文件:
从Matlab生成的代码:
function [fitresult, gof] = createFit1(Velocity, kWhPerkm)
%CREATEFIT1(VELOCITY,KWHPERKM)
% Create a fit.
%
% Data for &