How to normalize plot?
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
How to normalize the plot to one?
clc;clear all;close all;
syms x y
x0 = -.02:0.001:.02;lambda=532*10^-9;
y0 = -.02:0.001:.02;w0 = 0.002;
omegax=1;omegay=2;zr=pi*w0^2/lambda;
m = 2;
s=1;k=0.0002;Rx=zr;Ry=Rx;
[X0,Y0] = meshgrid(x0,y0);
f = @(x0,y0)sinh((omegax*x0+omegay*y0)/w0).*exp(-(x0.^2+y0.^2)/w0^2).*(x0+(1i*s.*y0)).^m.*exp((1i*k/2)*((x0^2/Rx)+(y0^2/Ry)));
I_numerical = real(abs(vpa(f)));
figure
fcontour(real(I_numerical), [-1 1 -1 1]*1E-2, 'Fill','on', 'MeshDensity',150)
colormap('hot');
colorbar('vert');
axis('equal')
0 commentaires
Réponses (1)
Torsten
le 4 Mai 2023
x0 = -.02:0.001:.02;lambda=532*10^-9;
y0 = -.02:0.001:.02;w0 = 0.002;
omegax=1;omegay=2;zr=pi*w0^2/lambda;
m = 2;
s=1;k=0.0002;Rx=zr;Ry=Rx;
[X0,Y0] = meshgrid(x0,y0);
f = @(x0,y0)sinh((omegax*x0+omegay*y0)/w0).*exp(-(x0.^2+y0.^2)/w0^2).*(x0+(1i*s.*y0)).^m.*exp((1i*k/2)*((x0^2/Rx)+(y0^2/Ry)));
Z0 = arrayfun(@(x,y)f(x,y),X0,Y0);
contourf(X0,Y0,real(abs(Z0))/max(real(abs(Z0(:)))))
colormap('hot');
colorbar('vert');
axis('equal')
6 commentaires
Torsten
le 4 Mai 2023
Then arrange your code such that I_numerical has size 500x500 since x has 500 elements and y has 500 elements.
At the moment, I_numerical has size 1x500.
Voir également
Catégories
En savoir plus sur Line Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!