Having trouble making a surface plot using data from Excel

1 vue (au cours des 30 derniers jours)
Henrik Caroe
Henrik Caroe le 3 Avr 2021
Commenté : Henrik Caroe le 4 Avr 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 commentaires
KSSV
KSSV le 4 Avr 2021
Attach your data.
Henrik Caroe
Henrik Caroe le 4 Avr 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.

Connectez-vous pour commenter.

Réponses (1)

darova
darova le 4 Avr 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)

Catégories

En savoir plus sur Resizing and Reshaping Matrices dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by