Having trouble making a surface plot using data from Excel

1 Ansicht (letzte 30 Tage)
Henrik Caroe
Henrik Caroe am 3 Apr. 2021
Kommentiert: Henrik Caroe am 4 Apr. 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 Kommentare
Henrik Caroe
Henrik Caroe am 4 Apr. 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.

Melden Sie sich an, um zu kommentieren.

Antworten (1)

darova
darova am 4 Apr. 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)

Kategorien

Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by