开头 tic 结尾 toc,即可在最后显所用时间;
step=lamda/50;%换能器区域的步长,需要小步长
xnum=round(a/step);%积分区域-a/2,a/2;
ynum=round(b/step);%积分区域-b/2,b/2;
x0line=(1:1:xnum)*step-xnum/2*ones([1 xnum])*step;
y0line=(1:1:ynum)'*step-ynum/2*ones([ynum 1])*step;
% ↑↑加" ' "转置成列向量
x0=repmat(x0line,[ynum 1]);
y0=repmat(y0line,[1 xnum]);
xm=x(i)*ones(ynum,xnum);
ym=y*ones(ynum,xnum);
zm=z(j)*ones(ynum,xnum);
r=sqrt((xm-x0).^2+(ym-y0).^2+zm.^2);
pp=exp(-1j*k*r)./r*step^2;
ones生成全是1的矩阵;
repmat复制向量生成矩阵;
注意数组和矩阵运算的区别。
已更新,此代码有许多冗余。