# How to draw multiple surface plots on the same mesh?

7 views (last 30 days)
Muhamed Sewidan on 9 Oct 2020
Commented: Muhamed Sewidan on 14 Oct 2020
I use this code to draw a Gaussian normal distribution. I want to plot several distributions at equal distance from the original one (like the figure).
How can I do so?
lambda = 1; % wavelength
E0 = 1; % max value of E-field amplitude
% ==================================================================
% prepare the coordinates mesh
% ----------------------------
zLin = linspace(-201,201,400) * lambda; % z-coordinate (horizontal)
rLin = linspace(-65,65,100) * lambda; % radius-coordinate (vertical)
[z,r] = meshgrid(zLin,rLin); % create mesh
% ===================================================================
wFactor = 4;
w0 = wFactor * lambda; % minimal waist
zR = pi* w0^2 / lambda; % Rayleigh length
w = w0 * sqrt( 1 + (z / zR) .^2 ); % Beam radius at any arbitrary distance (equ. 3)
I0 = abs(E0)^2/eta;
I = I0 .* (w0 ./ w).^2 .* exp( -2*(r./w).^2 );
VBBV on 9 Oct 2020
Edited: VBBV on 9 Oct 2020
Use contourf function as
%if true
% code
% end
v2 = 0:0.00009:0.0025;

Durganshu on 9 Oct 2020
Edited: Durganshu on 9 Oct 2020
Did you try hold on?
figure;
surf(z1,r1,I1);
hold on
zlin2= linspace(-101,101,300) * lambda; %whatever shifted values you want
rLin2 = linspace(-65,65,100) * lambda; %whatever shifted values you want
[z2,r2] = meshgrid(zLin2,rLin2);
% similarly define I2 and then plot
surf(z2,r2,I2);
Durganshu on 14 Oct 2020
Edited: Durganshu on 14 Oct 2020
Yes, that should work. Did you try it? All you're supposed to do is tweaking the I2 function in order to find the appropriate fit.
Muhamed Sewidan on 14 Oct 2020
Thank you I will try it out.

### Categories

Find more on Surface and Mesh Plots in Help Center and File Exchange

R2016a

### Community Treasure Hunt

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

Start Hunting!