creat a grid from xyz file

Hi!
I have a file of X,Y,Z values (X,Y are cartesian coordinates) and Z the altitude (it's a topo-bathymetry file).
can you tell me please how to creat a grid which contains this altitudes .
thank you

Réponses (1)

jonas
jonas le 27 Août 2020

1 vote

%make a 100x100 grid
[XX,YY] = meshgrid(linspace(min(X),max(X),100),linspace(min(Y),max(Y),100))
%interpolate Z data to grid
ZZ = griddata(X,Y,Z,XX,YY)

8 commentaires

wassim boulala
wassim boulala le 27 Août 2020
yes thank you but how to visualized the result in a figure .
best,
jonas
jonas le 28 Août 2020
surf(XX, YY, ZZ)
wassim boulala
wassim boulala le 28 Août 2020
it seems to have an error.
in my file the size of X Y and Z is 8630. but when I use code its gives me a grid with 8630 X 8630. so it's not logical.
best,
jonas
jonas le 28 Août 2020
Probably you made a mistake, because the code works for me. Upload the data or provide some more information if you want more help.
wassim boulala
wassim boulala le 28 Août 2020
Modifié(e) : wassim boulala le 28 Août 2020
here's my code
clear;
%open file xyz
T=readtable('points.txt')
A=T{:,:}
X=A(:,1);
Y=A(:,2);
Z=A(:,3);
n=length(X);
%make a nxn grid
[XX,YY] = meshgrid(linspace(min(X),max(X),n),linspace(min(Y),max(Y),n));
%interpolate Z data to grid
ZZ = griddata(X,Y,Z,XX,YY);
surf(XX,YY,ZZ)
jonas
jonas le 28 Août 2020
Modifié(e) : jonas le 28 Août 2020
n is the resolution of the grid. Use a lower value like 100. However, you should get an OK graph anyway?
wassim boulala
wassim boulala le 28 Août 2020
how can i do a graph in 2D (X,Y) ?
i think that works.
jonas
jonas le 28 Août 2020
Sorry, but this is waste of time. I'll respond when you ask a coherent question.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Interpolation dans Centre d'aide et File Exchange

Commenté :

le 28 Août 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by