Finding surface height at x,y coordinates
Ältere Kommentare anzeigen
Dear all,
using the mapping toolbox, I've created an interpolated surface from a scattered dataset. x,y,z are read from a file.
[yi,xi] = meshgrid(min(y):0.5:max(y), min(x):0.5:max(x)); % sets up mesh grid for x/y coords, step-size=0.5
zi = griddata(y,x,z,yi,xi,'linear'); % interpolates z values
surfm(yi,xi,zi);
Now, I need to read out the interpolated zi value at a given location (say... -10, -50). I feel like there's a very simple solution, but half an hour of googling and reading up in the documentation hasn't led me to success. Could someone point me in the right direction? Thank you!
1 Kommentar
Stephen23
am 19 Apr. 2016
What do you mean by "I need to read out the interpolated zi value": do you want to click on the figure and get the z value, or do you want to calculate the z value by passing the x,y location values?
Akzeptierte Antwort
Weitere Antworten (1)
John D'Errico
am 19 Apr. 2016
0 Stimmen
You have already used griddata! It looks like you have found a code snippet, but have no clue as to what it does or why it works. So read the help for griddata.
Now you wish to interpolate at some general point. You can either use griddata again at that general point, or since you have apparently now formed a regular grid you COULD use interp2.
The latter seems logical, but it is in fact worse, because then you have two sources of interpolation error. So just use griddata, as you did already.
1 Kommentar
LMS
am 19 Apr. 2016
Kategorien
Mehr zu Surface and Mesh Plots finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!