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

5 views (last 30 days)
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.

Accepted Answer

Matt J
Matt J on 5 Sep 2024
Edited: Matt J on 5 Sep 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

More Answers (1)

Star Strider
Star Strider on 5 Sep 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.
.

Categories

Find more on Language Fundamentals in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!