How plot a figure like this attached figure?

2 vues (au cours des 30 derniers jours)
Habib
Habib le 2 Fév 2020
Commenté : Habib le 2 Fév 2020
Hi,
I have some laser beam amplitude profile and I want to plot this profiles like follow fig in matlab.
dsds1.jpg
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?

Réponse acceptée

J. Alex Lee
J. Alex Lee le 2 Fév 2020
Modifié(e) : J. Alex Lee le 2 Fév 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 commentaires
Habib
Habib le 2 Fév 2020
I will run your code in 2017rb version. After, I will insert the result as comment.
Habib
Habib le 2 Fév 2020
Dear Alex, Thank You so much.
Your code correctly work .

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by