How to draw multiple surface plots on the same mesh?
    9 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Muhamed Sewidan
 el 9 de Oct. de 2020
  
    
    
    
    
    Comentada: Muhamed Sewidan
 el 14 de Oct. de 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)
% Irradiance
eta = 377;                              % for free space
I0 = abs(E0)^2/eta;
I = I0 .* (w0 ./ w).^2 .* exp( -2*(r./w).^2 );
surf(z,r,I); shading interp
1 comentario
Respuesta aceptada
  Durganshu
      
 el 9 de Oct. de 2020
        
      Editada: Durganshu
      
 el 9 de Oct. de 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);
9 comentarios
Más respuestas (0)
Ver también
Categorías
				Más información sobre 2-D and 3-D 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!


