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

Respuestas (1)

jonas
jonas el 27 de Ag. de 2020

1 voto

%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 comentarios

wassim boulala
wassim boulala el 27 de Ag. de 2020
yes thank you but how to visualized the result in a figure .
best,
jonas
jonas el 28 de Ag. de 2020
surf(XX, YY, ZZ)
wassim boulala
wassim boulala el 28 de Ag. de 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 el 28 de Ag. de 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 el 28 de Ag. de 2020
Editada: wassim boulala el 28 de Ag. de 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 el 28 de Ag. de 2020
Editada: jonas el 28 de Ag. de 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 el 28 de Ag. de 2020
how can i do a graph in 2D (X,Y) ?
i think that works.
jonas
jonas el 28 de Ag. de 2020
Sorry, but this is waste of time. I'll respond when you ask a coherent question.

Iniciar sesión para comentar.

Categorías

Preguntada:

el 27 de Ag. de 2020

Comentada:

el 28 de Ag. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by