필터 지우기
필터 지우기

How to normalize plot?

조회 수: 5 (최근 30일)
Athira T Das
Athira T Das 2023년 5월 4일
댓글: Torsten 2023년 5월 4일
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')

답변 (1개)

Torsten
Torsten 2023년 5월 4일
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
Athira T Das
Athira T Das 2023년 5월 4일
I need to plot I_numerical w.r.t x and y
Torsten
Torsten 2023년 5월 4일
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.

댓글을 달려면 로그인하십시오.

태그

Community Treasure Hunt

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

Start Hunting!

Translated by