How plot a figure like this attached figure?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Habib
el 2 de Feb. de 2020
Comentada: Habib
el 2 de Feb. de 2020
Hi,
I have some laser beam amplitude profile and I want to plot this profiles like follow fig in matlab.
infact, I have tried this codes
% z1 and z2 are defined in my script as 500*500 matrix
r1=linspace(0,0.005,500);
r2=r1;
mesh(r1,r2,z1)
hold on
mesh(r1,r2,z2+2)
but I can not rotate and it not give what I want. I need help?
0 comentarios
Respuesta aceptada
J. Alex Lee
el 2 de Feb. de 2020
Editada: J. Alex Lee
el 2 de Feb. de 2020
It's because mesh expects z-data to be actual coordinates in z, but mesh (and surf) will accept a 4th argument for color
N = 500;
r1=linspace(0,0.005,N);
[X,Y] = meshgrid(r1);
figure; cla; hold on;
ax = gca;
% fig = figure;
% ax = axes(fig,'NextPlot','add');
for i = 1:10
C = rand(N); % replace with the image
Z = ones(N)*i;
% flip the order of Y and Z to get vertical slices
s = surf(ax,X,Z,Y,C,'EdgeColor','none');
end
ax.DataAspectRatio = [1,700,1] % stretch the "z"-axis view
% rotate the view
view([-65,14])
6 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Surface and Mesh 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!