How do I fit a surface to this data properly?
Ältere Kommentare anzeigen
Hi,
I have a set of datapoints (x,y,z) to which I want to fit a surface. I dont have a mathematical expression for the surface, so I tried to use the linear interpolation as in:
load ('data.mat')
PTSGRID = 256;
xs = min(x):(max(x)-min(x))/(PTSGRID-1):max(x);
ys = min(y):(max(y)-min(y))/(PTSGRID-1):max(y);
[xq, yq] = meshgrid(xs,ys);
zq = griddata(x,y,z,xq,yq,'linear');
plot3(x,y,z,'mo')
hold on
mesh(xq,yq,zq);
However the fitted surface takes very strange values where there is no data defined, very different from what I would visually expect. Take a look for example at this figure, and the zone I circled:

How can I fit in a better way to avoid this behavior?
Thanks!
Antworten (2)
KSSV
am 16 Sep. 2021
0 Stimmen
3 Kommentare
Pablo Fernandez
am 16 Sep. 2021
KSSV
am 16 Sep. 2021
The same link has an example showing how to fit for a surface.
Pablo Fernandez
am 16 Sep. 2021
I don't have this problem
s = load('data.mat');
x = s.x;
y = s.y;
z = s.z;
xx = linspace(min(x),max(x),20);
yy = linspace(min(y),max(y),20);
[x1,y1] = meshgrid(xx,yy);
z1 = griddata(x,y,z,x1,y1);
mesh(x1,y1,z1)
1 Kommentar
Pablo Fernandez
am 19 Sep. 2021
Kategorien
Mehr zu Get Started with Curve Fitting Toolbox finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
