Get the coefficients in a vector from cftool ?
3 次查看(过去 30 天)
显示 更早的评论
Hi,
In my script (*.m file), I would like to use cftool to get the 15 coefficients from a polynomial function (degrees 4) and put them in a vector. This vector will be use latter in my script. It have to be done without configuring the parameters in cftool windows. I would like everything to be automatic.
Any ideas to do it with cftool ? I already tried with fittype but it don't allow a so big z matrix (x and y are 1x17 vectors and z is a 17x17 matrix for example).
Kind regards, Seb
0 个评论
回答(5 个)
Greig
2015-2-23
编辑:Greig
2015-2-23
To extract the coefficients use the "fit" function....
[fitobject,gof,output]=fit([x, y], z, 'poly44');
fitobject.p00, fitobject.p10, fitobject.p01, etc contain all of the coefficients. So,
Coeffs = [fitobject.p00, fitobject.p10, fitobject.p01,....
is your vector of coefficients.
For more info type
doc fit
[Edit: First post was a solution for curve fitting, then I realised you were surface fitting.]
0 个评论
Greig
2015-2-23
You'll need to do some reshaping as fit expects column vectors for x, y and z. If I have my dimensions correct, something like this should work.
x2=reshape(meshgrid(x,y), numel(z), 1);
y2=repmat(y, 15, 1);
z2=reshape(z, numel(z), 1);
[fitobject,gof,output]=fit([x2, y2], z2, 'poly44');
0 个评论
Seb Seb
2015-2-23
1 个评论
Greig
2015-2-23
Sorry, I missed a transpose, it should be
y2=repmat(y', 15, 1);
y2 should now be 225x1.
The fit command expects x, y, and z to be column vectors. As it stands, you have x and y laid out like a coordinate system on which z can be laid. If you look at x2, the first 15 elements should all be the same, then the second 15 all the same and so on. The first 15 elements of y2 are y, then this repeats. In this way [x2,y2] represents all of the x-y coordinates in a long list. z is then reshaped to match this. cftool is smart enough to recognize this and does the reshaping internally.
I hope this makes sense.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Get Started with Curve Fitting Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!