surface fitting
13 次查看(过去 30 天)
显示 更早的评论
I am using MATLAB 2007. I want to do surface fitting. Any help will be appreciated.
Thanks.
0 个评论
采纳的回答
Grzegorz Knor
2011-11-29
See:
You can also write your own function e.g. by using the Optimization Toolbox.
0 个评论
更多回答(7 个)
Grzegorz Knor
2011-11-29
Add folder which contains this function to search path, and type:
help gridfit
0 个评论
Grzegorz Knor
2011-11-30
Gridfit produce only smooth surface that approximates your data.
If you want to calculate the coefficient c from your model look at the example:
[x y] = meshgrid(-1:.1:1);
c = sqrt(2);
z = c*( 2*(x.^2+y.^2)-1 );
z = z + randn(size(z))/5;
plot3(x,y,z,'r.')
f = @(c)norm(z-c*( 2*(x.^2+y.^2)-1));
c1 = fminsearch(f,1);
z1 = c1*( 2*(x.^2+y.^2)-1 );
hold on
surf(x,y,z1,'FaceColor','none')
0 个评论
smp
2011-11-30
1 个评论
Grzegorz Knor
2011-11-30
If z is a vector, then x and y should be vectors too.
BTW: add dots to this line before ^:
f = @(c)norm(z-c*(2*(x.^2+y.^2)-1))
smp
2011-12-1
2 个评论
Walter Roberson
2011-12-1
See the reference material for mpower ("^") and power (".^") to see when to use one or the other.
Changing the initial value of c to 5 has no effect on the code. The anonymous function f does not use the existing value of c in any way. The anonymous function uses c as a "dummy argument". Nothing would change if you were to instead use
f = @(ThisC)norm(z-ThisC* (2*(x.^2+y.^2)-1 ) )
另请参阅
类别
在 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!