Having trouble making a surface plot using data from Excel

1 visualización (últimos 30 días)
Henrik Caroe
Henrik Caroe el 3 de Abr. de 2021
Comentada: Henrik Caroe el 4 de Abr. de 2021
Im trying to construct a surface plot of a mountain using MATLAB. I've been trying to import data from Excel but when trying to use the script:
function plot3Ddata(x,y,z)
data = xlsread('TamElev2','A2:C261');
x=data(:,1);
y=abs(data(:,2));
z=data(:,3);
dt = delaunayTriangulation(x,y);
tri= dt.ConnectivityList;
xi= dt.Points(:,1);
yi= dt.Points(:,2);
F= scatteredInterpolant(x,y,z);
zi=F(xi,yi);
trisurf(tri,xi,yi,zi);
end
It keeps giving me a flat line going in both the x and y direction, I'm not sure if it is an issue with my code or how I have the data set up in excel but no matter what I do, it hasn't been plotting nicely.
  2 comentarios
KSSV
KSSV el 4 de Abr. de 2021
Attach your data.
Henrik Caroe
Henrik Caroe el 4 de Abr. de 2021
TamElev2 is a set of data I generated online, and the set I've been attempting to use with no luck. TamElev3 is a set of data I collected myself.

Iniciar sesión para comentar.

Respuestas (1)

darova
darova el 4 de Abr. de 2021
Either use triangulation
x = rand(20,1);
y = rand(20,1);
z = rand(20,1);
dt = delaunay(x,y);
trisurf(dt,x,y,z)
Either griddata
x = rand(20,1);
y = rand(20,1);
z = rand(20,1);
x1 = linspace(min(x),max(x),20);
y1 = linspace(min(y),max(y),20);
[X,Y] = meshgrid(x1,y1);
Z = griddata(x,y,z,X,Y);
surf(X,Y,Z)

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by