How to obtain a section from a surf plot
11 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Ricardo Duarte
le 30 Juin 2021
Commenté : Ricardo Duarte
le 1 Juil 2021
Dear all,
I have a surface plot that represents the bathymetry of a given surface:
x=longitute;
y=latitude;
z=depth;

Now, I want to obtain a section that cuts this surface at the latitude (37.9º) in order to obtain something like the following figure:

How can I do this?
Thanks in advance.
2 commentaires
DGM
le 30 Juin 2021
Modifié(e) : DGM
le 30 Juin 2021
The example image isn't a section. It simply appears to be the same surface from a 2D view, like
shading flat % get rid of edges
view([0 -1 0]) % set 2D view looking toward +y
Either that, or it represents some sort of difference information.
If you actually want a section, it will just be a line. If the query point where you want to make the section belongs to the x,y points you're using, then all you have to do is extract the corresponding vector from the Z data. If it lies between the plotted points, then you'll have to interpolate.
Réponse acceptée
KSSV
le 1 Juil 2021
Check this demo example, may be useful.
[X,Y,Z] = peaks(100) ;
surf(X,Y,Z)
xi = unique(X(:)) ;
val = 0; dx = 10^-3 ; w = 10 ;
yi = linspace(val-dx,val+dx,w) ;
[Xi,Yi] = meshgrid(xi,yi) ;
Zi = interp2(X,Y,Z,Xi,Yi) ;
surf(Xi,Yi,Zi)
4 commentaires
DGM
le 1 Juil 2021
Modifié(e) : DGM
le 1 Juil 2021
Or instead of scatter3(), just
plot(xi,zi)
if you don't need the color mapping and want a plain 2D solid line.

or
h = surf([xi(:) xi(:)],[yi(:) yi(:)],[zi(:) zi(:)]);
set(h,'facecolor','none','edgecolor','interp');
set(h,'linewidth',3); % make it fat so it's easier to demonstrate
view([0 -1 0]); % only show 2-D view
colormap(parula);
If you want the solid line with colormapping.

The 2D view enforcement works with scatter3() too.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Surface and Mesh Plots dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!