matlab如何把程序运行结果进行d窗显示?

matlab如何把程序运行结果进行d窗显示?,第1张

可以用MATLAB提供的一些基本旦袜对话框函数显示,例如:

str={'i am 团迟搏a student''', 'can i help you''', 'i like lessons'''塌祥}

helpdlg(str)

你对照单缝衍射光强分布公式看这个程序运宽,就简单了,程序中用image函数仿真绘制衍射图样,用plot函数绘制光强;

没有主函数,程序前部分生成仿真单缝衍射所需要的光强分布数据(51个点敏蠢数据),后旁拿亮部分是用image,plot两个函数(MATLAB自己的)仿真图像;

用subplot将图形窗口分成两块,第一块仿真绘制衍射图样,第二块用plot函数绘制光强。

关键语句,我在后面进行了注释!

lam=500e-9

a= 1e-3f=1

xm= 3*lam*f/a

nx= 51

xs=linspace(-xm,xm,nx)%在-xm到xm之间均匀产生51个数据

np=51

xp=linspace(0,a,np)%在0到a之间均匀产生51个数据

%以上语句创建若干变量,与特定公式有关

for i=1:nx

sinphi= xs(i)/f

alpha=2*pi*xp*sinphi/lam

sumcos=sum(cos(alpha))

sumsin=sum(sin(alpha))

B(i,:)=(sumcos^2+sumsin^2)/np^2

end

%以上语句为for循环,计算51个位置的衍射光强,放在B向量中

N=255

Br=(B/max(B))*N%归一化到对应像素灰度

figure(1)

subplot(1,2,1)

image(xm,xs,Br)%仿真衍射图像

colormap(gray(N))

subplot(1,2,2)

plot(B,xs)%仿真单缝衍射光强

模拟导d追踪问题程序如山举下:(此程序在matlab R2014b上调试的)

clearclc

v0=10

xw=0

yw=0.001

xr=-150

yr=10

dt=0.005

t=0

figure('units','normalized')

axis([xr 0,0 -xr])

axis off

set(gcf,'color','w')

w=line(xw,yw,'color','r','逗空碧marker','.','markersize',20,'erasemode','xor')

r=line(xr,yr,'color','b','marker','.','markersize',10,'erasemode','xor')

wd=line(xw,yw,'color','r','linestyle','-','linewidth',2,'erasemode','none')

rd=line(xr,yr,'color','c','linestyle','-','linewidth',2,'erasemode','none')

while (abs(1-xw/xr)>=1e-5||abs(1-yw/yr)>=1e-5)

yr=v0*t+0.1*t^2

xr=-150+0.5*t^2

l=sqrt((xw-xr)^2+(yw-yr)^2)

vx=2*v0*(xr-xw)/l

vy=2*v0*(yr-yw)/l

xw=xw+vx*dt

yw=yw+vy*dt

set(w,'xdata',xw,'ydata',yw)

set(wd,'xdata',xw,'ydata',yw)

set(r,'xdata',xr,'ydata'亏团,yr)

set(rd,'xdata',xr,'ydata',yr)

drawnow

t=t+dt

end

hold on

fill([xw-5 xw xw+5 xw+2.5 xw+5 xw xw-5 xw-2.5],[yw-5 yw-2.5 yw-5 yw yw+5 yw+2.5 yw+5 yw],'r')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8235663.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存