double surface using scatteredInterpolant
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
JustANickName
am 14 Jul. 2022
Kommentiert: JustANickName
am 14 Jul. 2022
Hi,
I'm trying to make a 3-D plot with contour from a datafile that contains 1500 point in 3 column {x,y,z}, where z=f(x,y). The following code is what I use to generate the plot, and a,b contains the x,y of my file. As you can see from the following images in the 3d plot there's the overlap between two surface: a curved one (it's the one that should be my funciton) and a "roof" over it given by the parasite linear surface. Indeed, also the contour plot show the overlap between this surface. I cannot use scatter3 function because I need the contour plot that can be done only with an interpolation function of my data. How can I solve it? I'm quite new to matlab. Thanks.
load zoccolo.txt
a = zoccolo(:,1);
b = zoccolo(:,2);
z = zoccolo(:,3);
[X Y] = ndgrid(a,b);
F=scatteredInterpolant(a,b,z);
Z = F(X,Y);
tmp = surf(X,Y,Z);
rotate(tmp,[0 0 1],180)
contour(X,Y,Z,100);
0 Kommentare
Akzeptierte Antwort
KSSV
am 14 Jul. 2022
T = readtable('https://in.mathworks.com/matlabcentral/answers/uploaded_files/1065115/zoccolo.txt') ;
zoccolo = table2array(T) ;
a = zoccolo(:,1);
b = zoccolo(:,2);
z = zoccolo(:,3);
x = linspace(min(a),max(a));
y = linspace(min(b),max(b));
[X,Y] = meshgrid(x,y) ;
Z = griddata(a,b,z,X,Y) ;
surf(X,Y,Z)
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Surface and Mesh Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!