surface fitting
12 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I am using MATLAB 2007. I want to do surface fitting. Any help will be appreciated.
Thanks.
0 comentarios
Respuesta aceptada
Grzegorz Knor
el 29 de Nov. de 2011
See:
You can also write your own function e.g. by using the Optimization Toolbox.
0 comentarios
Más respuestas (7)
Grzegorz Knor
el 29 de Nov. de 2011
Add folder which contains this function to search path, and type:
help gridfit
0 comentarios
Grzegorz Knor
el 30 de Nov. de 2011
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 comentarios
smp
el 30 de Nov. de 2011
1 comentario
Grzegorz Knor
el 30 de Nov. de 2011
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
el 1 de Dic. de 2011
2 comentarios
Walter Roberson
el 1 de Dic. de 2011
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 ) )
Ver también
Categorías
Más información sobre Get Started with Curve Fitting Toolbox en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!