clc;
lamda=632.8e-6;
k=2*pi/lamda;
z=1000000;w=100;
N=300;
r=2;a=1;b=1;s=2;
L=zeros(N,N);
[m,n]=meshgrid(linspace(-N/2,N/2,N));
D=((m-a).^2+(n-b).^2).^(1/2);
if (D<=r);
I=1;
else
I=0;
E=((m.^2+n.^2)/w.^2).^(abs(s)/2)*exp((-(m.^2+n.^2))/(w.^2)).*exp(j.*s.*atan(n/m));
L=300;
M=300;
[x,y]=meshgrid(linspace(-L/2,L/2,M));
f=int(((m.^2+n.^2)./w.^2).^(abs(s)./2).*exp(-(m.^2+n.^2)./w.^2).*exp(1i.*s.*atan(n/m)).*I.*exp(-1i.*k./z.*(x.*m+y.*n)),n,-sqrt(4-(x-1)^2)+1,sqrt(4-(x-1)^2)+1);
Q=int(f,m,-1,3);
h=-1i.*exp(1i.*k.*(z+(x.^2+y.^2)/z/2)).*Q;
H=h.*conj(h);
figure(1);
imshow((H));
end
显示:未定义与 'double' 类型的输入参数相对应的函数 'int'。
请问一下是为什么?
这个意思不就是,你调用了一个函数,这个函数的参数类型是int,但是你调用的时候输入了一个double,
一行行debug就知道是哪个地方了,看看参数值对不对