Slice of a 3D plot and projection of that function in a plane.

10 visualizaciones (últimos 30 días)
U B
U B el 5 de Sept. de 2024
Comentada: Star Strider el 5 de Sept. de 2024
I'm trying to plot the mesh-plot of a Gaussian beam and slice through the centre. With it I'm tring to project the 3D plot on a plane together too. I'm using-
x = linspace(-2,2,100); y = linspace(0,2,100);
[X,Y] = meshgrid(x,y);
Rho2 = X.*X + Y.*Y;
Z = exp(-Rho2);
figure,
mesh(X,Y,Z,'FaceAlpha',1); hold on
contourf(X,Y,Z,70,'edgecolor','none'),colormap cool
But now the 2D Gaussing is also cut at the centre. Is there any way I can get the sliced 3D Gaussin and full 2D Gaussian together.
I appreciate your help.

Respuesta aceptada

Matt J
Matt J el 5 de Sept. de 2024
Editada: Matt J el 5 de Sept. de 2024
[x,y,yhalf]=deal(linspace(-2,2,100));
yhalf(y<0)=nan;
Z = exp(-( x.^2 + y.^2'));
figure,
mesh(x,yhalf,Z,'FaceAlpha',1); hold on
contourf(x,y,Z,70,'edgecolor','none'),colormap cool

Más respuestas (1)

Star Strider
Star Strider el 5 de Sept. de 2024
II’m not certain what result you want.
Try this —
x = linspace(-2,2,100); y = linspace(0,2,100);
[X,Y] = meshgrid(x,y);
Rho2 = X.*X + Y.*Y;
Z = exp(-Rho2);
x2 = linspace(-2,2,100);
y2 = linspace(-2,2,100);
[X2,Y2] = meshgrid(x2,y2);
Rho22 = X2.*X2 + Y2.*Y2;
Z2 = exp(-(X.^2 + Y2.^2));
figure,
mesh(X,Y,Z,'FaceAlpha',1); hold on
contourf(X2,Y2,Z2,70,'edgecolor','none'),colormap cool
The approach here iis to define ‘y2’ over the full extent, and then recalculate ‘Z2’ using a slightly different function, and then reecalculate the contourf plot using them.
.
  2 comentarios
U B
U B el 5 de Sept. de 2024
Oh just by chnaging the axis we can get it. Thank you so much.

Iniciar sesión para comentar.

Categorías

Más información sobre Contour Plots en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by