MATLAB基本函数的应用

上传人:hs****ma 文档编号:478388687 上传时间:2023-04-10 格式:DOC 页数:19 大小:58.50KB
返回 下载 相关 举报
MATLAB基本函数的应用_第1页
第1页 / 共19页
MATLAB基本函数的应用_第2页
第2页 / 共19页
MATLAB基本函数的应用_第3页
第3页 / 共19页
MATLAB基本函数的应用_第4页
第4页 / 共19页
MATLAB基本函数的应用_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《MATLAB基本函数的应用》由会员分享,可在线阅读,更多相关《MATLAB基本函数的应用(19页珍藏版)》请在金锄头文库上搜索。

1、-装 订 线2008-2009 学年第 2 学期 物电 学院期末考试卷?MATLAB程序设计语言?*: 9 *: 周茜 班级: 电子信息工程1班*: 4 *: 沈玉珠 班级: 电子信息工程1班 成绩:评语:考试题目及要求本考试要求学生灵活运用Matlab程序设计语言课程中的学习到的相关知识,自拟题目,编制应用程序,实现具有一定难度的应用程序。在程序设计过程中,要注重知识的综合应用,尽量涵盖Matlab程序设计语言课程中较多的知识点;也可以自行学习课本上未涉及的Matlab程序设计语言高级内容,完成相关程序设计。 本考试每人需要提交以下内容:1. 课程论文包括简介,主要内容,结论,参考文献等,打

2、印稿,电子版; 2. 源程序;3. 实验报告合订本。 . z-MATLAB根本函数的应用一、 摘要 通过一学期对MATLAB的学习,使我们初步掌握了MATLAB的许多功能,包括数值计算,矩阵分析,图形图像的输出,GUI界面设计,程序设计等等,为了进一步稳固对所学知识的理解,特选择此课程设计题目,在熟悉界面各控件属性以及数值计算的根底上,对MATLABGUI设计有了更深层次的理解。在设计美观的运行界面的同时,使程序可以完整的运行,并到达理想的效果。在设计美观界面的同时,灵活运用Matlab程序设计语言及matlab的强大的函数功能,使得课程设计完成一定的功能。初步规划后,使得此次大作业能够完成一

3、些物理方面现象的计算及演示。MATLAB涉及到的知识相当广泛,我们选择了图形界面设计,即GUI界面设计。其实现的主要功能是输入自定义参数局部光现象的演示。GUI界面上可以输入波长和N,单击“画图按钮后,会自动弹出Figue界面,演示光现象。在绘图函数的应用的设计中,在GUI界面的中设计一个坐标轴,根据matlab自带的函数绘图。而在抛体运动中,利用文本框输入v*和vy及初始高度,进展一些简单的数据处理及绘图。二、设计思路在此次设计中原本打算制作光学现象的演示,但是由于对matlab根本函数及各方面的操作能力较差,因此只能由最根本的做起。抛体运动和绘图是对前面的一个铺垫,而光学现象的演示才是重点

4、。在做光学现象演示是要对matlab中根本的一些计算函数要熟练掌握,并且要对物理现象熟悉了解,因此在做设计的同时也查询了许多物理方面的书籍。三、关键字 光学现象的演示 根本绘图函数 抛体运动四、GUI界面设计局部 1、光学现象演示界面设计在命令窗口中输入“guide命令,出现可视化的界面开发环境,拖动窗口左侧的图形面板中的控件到窗口空白处,放置的控件有:1个按钮组其中包括5个单项选择按钮用于选择所要演示的光学现象;4个静态文本框分别对此界面或界面中的其他控件加以说明;2个编辑文本框用于输入数据;两个按钮一个画图另一个为退出。并对其进展颜色的修改,使其美观。设计完成的界面如以下图所示:2、 绘图

5、函数应用的界面设计在命令窗口中输入“guide命令,出现可视化的界面开发环境,拖动窗口左侧的图形面板中的控件到窗口空白处,放置的控件有:1个按钮组其中包括6个单项选择按钮用于选择不同的画图函数;1个静态文本框说明此界面的功能;两个按钮一个画图、一个退出;还有一个图片框用于图像显示。并对其进展颜色的修改,使其美观。设计完成的界面如以下图所示:3、 抛体运动演示界面设计在命令窗口中输入“guide命令,出现可视化的界面开发环境,拖动窗口左侧的图形面板中的控件到窗口空白处,放置的控件有:7个静态文本框用于说明此界面或界面中*些控件的功能;三个按钮分别实现计算、画图、退出功能;还有一个图片框用于图像显

6、示。并对其进展颜色的修改,使其美观。设计完成的界面如以下图所示:四、 程序设计局部(一) 、光学现象演示的程序设计1.pushbutton1的callback的编程此程序设计主要对画图按钮的回调函数进展编程,主要用于switch函数和if函数。当在界面中选择“弗朗禾费单缝衍射的单项选择按钮时,单击“画图按钮时的程序如下所示: case1 a=9e-4; b=9e-3; c=4e-4;%缝宽的设置 k=get(handles.edit1,string); k2=str2double(k); lamda=k2;%用文本框取lamda的值 N=1;%缝的个数 f=1; %透镜焦距为1m m=500;

7、%确定屏幕上的点数 ym=8000*lamda*f;%确定纵轴的*围 ys=linspace(-ym,ym,m);%确定纵轴的始末*围和间距 *s=ys; n=255; for i=1:m sinth1=*s(i)/sqrt(*s(i)2+f2); sinth2=ys./sqrt(ys.2+f2); angleA=pi*a*sinth1/lamda; angleB=pi*b*sinth2./lamda; e=a+c; angleD=pi*f*sinth2./lamda; angleF=N*angleD; B(:,i)=(sin(angleF).2.*sin(angleA).2.*sin(ang

8、leB).2.*a2.*b2.*1250./lamda2./(angleA.2.*angleB.2.*sin(angleD).2);%数据采集处理局部 end figure(position,217 266 694 344,. name,弗朗禾费单缝衍射);% 新建一个画图界面用于图像显示 a*es(position,0.05,0.08,0.6,0.8);hold on; subplot(1,2,2); image(*s,ys,B); colormap(gray(n); subplot(1,2,1); plot(B(m/2,:),ys,k);%画图局部运行结果:当在界面中选择“弗朗禾费多缝衍射

9、单项选择按钮时,并单击“画图按钮时的程序如下: figure(position,217 266 694 244,. name,弗朗禾费多缝衍射); a*es(position,0.05,0.08,0.6,0.8);hold on; title(夫琅和费多缝衍射 ,. fontsize,14) % 新建一个画图界面用于图像显示 k=get(handles.edit1,string); k2=str2double(k); lamda=k2; %用文本框取lamda的值 k3=get(handles.edit2,string); k4=str2double(k3); lamda=k2;%用文本框去N

10、的值 N=k4 a=2e-4;D=5;d=5*a; ym=2*lamda*D/a;*s=ym; n=1001; ys=linspace(-ym,ym,n); for i=1:n sinphi=ys(i)/D; alpha=pi*a*sinphi/lamda; beta=pi*d*sinphi/lamda; B(i,:)=(sin(alpha)./alpha).2.*(sin(N*beta)./sin(beta).2; B1=B/ma*(B); end NC=256; %确定灰度的等级 Br=(B/ma*(B)*NC; subplot(1,2,2) image(*s,ys,Br); colorm

11、ap(gray(NC); %色调处理 subplot(1,2,1) plot(B1,ys,k);运行结果:当在界面中选择“弗朗禾费圆孔衍射单项选择按钮并单击“画图按钮时的程序如下所示:注:由于画弗朗禾费圆孔衍射图样的程序段是从网上下载的,修改有点困难,因此我只是将它读懂,望教师谅解。case3 figure(position,217 266 694 244,. name,弗朗禾费圆孔衍射); ; a*es(position,0.05,0.08,0.6,0.8);hold on; set(gcf,doublebuffer,on); a*is(-4,12,-5,5); % 新建一个画图界面用于图像

12、显示 rectangle(position,0,1,0.2,3,FaceColor,0.1,0.3,0.4);rectangle(position,0,-4,0.2,3,FaceColor,0.1,0.3,0.4)rectangle(position,3.8,-4,0.4,8,FaceColor,. 0.4,0.3,0.4,Curvature,1,1); rectangle(position,11,-5,0.4,10,FaceColor,0.1,0.3,0.4); %在图形界面上画几条条形框,用于模拟弗朗禾费圆孔衍射的实验装备 h1=plot(-4,-4,-0.7,-0.7); h2=plot

13、(-4,-4,0,0); h3=plot(-4,-4,0.7,0.7); %画直线,用于模拟光线 for k=-4:.1:0; pause(0.05); set(h1,h2,h3,*data,-4,k); end y=-4:.1:4; a=linspace(-atan(4/11),atan(4/11),length(y); a=10*sin(a); II=abs(sinc(a).2*6; *=11-II; plot(*,y,r) K=find(diff(sign(diff(II)=-2)+1; yyN=y(K); P=zeros(3,5);%计算并画出能量分布图 yN=-0.7,0,0.7;H=P; for m=1

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号