查看: 4505|回复: 4

matlab实现高斯波前

  [复制链接]
发表于 2009-3-4 11:40:18 | 显示全部楼层 |阅读模式


matlab实现高斯波前
自己做的出现一个疑问 请教高手. 程序中红色的部分 我尝试了 三种 写法 只有第一种能够 正确表示 出 高斯波前. 但是不知道原因  
clear;
wave=1.064e-3;
wo=0.5;
zr=pi*wo^2/wave;
z=linspace(-2*zr,2*zr,200);
y=linspace(-4*wo,4*wo,200);
[py,pz]=meshgrid(y,z);
o=wave*pz/(pi*wo^2);
wz=wo*sqrt(1+o.^2);
i=wo^2./wz.^2.*exp(-2*(py.^2./wz.^2));
% i=wo^2./wz^2.*exp(-2*(py^2./wz^2));%figure is diffence
% i=wo^2/wz^2*exp(-2*(py^2/wz^2));%figure not exist
surf(pz,py,i);
shading interp;
xlabel('xlocation/mm');
ylabel('ylocation/mm');
zlabel('power/a.u.');
colorbar;
box on;




发表于 2009-3-4 11:56:02 | 显示全部楼层


其实你这个问题就是Matlab点乘/除的问题,和高斯光前没什么关系。点乘或点除代表矩阵内运算,如没点则为矩阵运算。这是学Matlab最容易犯的错误,具体见Matlab相关书籍。




发表于 2009-3-4 13:49:53 | 显示全部楼层


都是高手,我帮你们顶帖!!




 楼主| 发表于 2009-3-4 18:46:58 | 显示全部楼层


高手 谢谢 指教




发表于 2013-2-19 12:50:28 | 显示全部楼层


已看...




回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注公众号

相关侵权、举报、投诉及建议等,请发 E-mail:admin@discuz.vip

Powered by Discuz! X5.0 Licensed © 2001-2026 Discuz! Team.|鄂ICP备17021725号-1

在本版发帖
关注公众号
QQ客服返回顶部