代码部分:
%仅回调函数
% Button pushed function: plotButton
function plotButtonPushed(app, event)
R=app.REditField.Value;
lambda=app.lambdaEditField.Value;
x=[0:0.01:6];
theta=asin(lambda*x/R);
m=pi*R*sin(theta)/lambda;
z=(besselj(1,2*m)).^2./m.^2;
plot(app.ax1,x,z);
u=[-6:0.01:6];
theta=asin(lambda*u/R);
m=pi*R*sin(theta)/lambda;
z=(besselj(1,2*m)).^2./m.^2;
plot(app.ax4,u,z);
y=[0:0.01:6];
[X,Y]=meshgrid(x,y);
r1=sqrt((X-3).^2+(Y-3).^2);
theta2=asin(lambda*r1/R);
m2=pi*R*sin(theta2)/lambda;
z2=abs((besselj(1,2*m2)).^2./m2.^2);
mesh(app.ax3,x,y,z2);
imagesc(app.ax2,z2.^0.3);
colormap(app.ax2,gray(256));
end
% Button pushed function: clearButton
function clearButtonPushed(app, event)
cla(app.ax1,'reset');
cla(app.ax2,'reset');
cla(app.ax3,'reset');
cla(app.ax4,'reset');
end
end
运行结果: