欢迎来到天天文库
浏览记录
ID:14347302
大小:167.00 KB
页数:13页
时间:2018-07-28
《matlab程序设计实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、科学计算与数据处理实验报告学 号姓 名实验名称MATLAB程序设计实验实验目的1.掌握M文件的编辑、调试和性能剖析方法2.掌握MATLAB脚本和函数的设计方法3.掌握MATLAB程序的基本语法、关系运算和控制结构4.掌握串演算函数的用法实验方案1.编写两段简短的代码,演示MATLAB脚本和函数的不同:脚本和函数的不同点是:函数需要通过function来声明,一般有输入参数和输出参数。脚本是按顺序一条一条命令逐行执行。编写一个函数文件myfun.m和一个脚本文件myfunscript.m,来演示脚本和函数的不同。2.编写程序演示控制结构的用法:编写程序分别来演示
2、循环(for、while)、分支(if-else-end、switch-case)和异常处理(try-catch)控制结构的用法。3.编写程序分别演示以下命令的功能。return的返回功能,input的输入功能。keyboard语句常用在程序调试和运行中的变量修改。用户在程序中使用keyboard语句,在系统执行此语句时,将停止文件的执行,显示提示符“K>>”并把控制权交给键盘,等待用户的输入。当pause语句执行时,系统暂停执行,等待用户按任意键继续执行。break终止本次循环,跳出最内层循环中剩下的语句。error输出错误信息。lasterr显示或返回上一条出
3、错的信息。warning遇到错误需要给使用者必要的提示,warning语句是常见的警告提示语句。lastwarn存放最新的警告信息。4.串演算实验:设计实验演示以下函数的功能和用法。eval是执行包含MATLAB表达式/命令的字符串,feval是调用某个函数的另一个方法。5.程序调试实验:对程序错误进行调试,总结调试过程,指出并改正所给程序的出错语句,记录程序出错时和调通后显示的图形。6.程序性能剖析实验:利用剖析器(profileviewer)对relaxzzy(300)进行运行分析,找出relaxzzy函数中最耗时的语句,记录其执行时间、被调用次数,并指出该语
4、句是否可以被加速。实验记录1.编写两段简短的代码,演示MATLAB脚本和函数的不同:(1)函数文件:文件名:myfun.mfunctiony=myfun(a,b)disp(sprintf('Myfirstinputis"%s"',inputname(1)))disp(sprintf('Mysecondinputis"%s"',inputname(2)))y=a+b;运行结果:>>x=5;y=6;y=myfun(x,y)>>Myfirstinputis"x"Mysecondinputis"y">>y=1311(1)脚本文件:文件名:myfunscript.ma=2;
5、b=2;clf;x=-a:0.2:a;y=-b:0.2:b;fori=1:length(y)forj=1:length(x)ifx(j)+y(i)>1z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2-1.5*x(j));elseifx(j)+y(i)<=-1z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2+1.5*x(j));elsez(i,j)=0.7575*exp(-y(i)^2-6.*x(j)^2);endendendaxis([-a,a,-b,b,min(min(z)),max(max
6、(z))]);colormap(flipud(winter));surf(x,y,z);运行结果:1.编写程序演示控制结构的用法:(1)for循环:>>symsnfact_n>>fact_n=1;>>n=input('pleaseenterapositiveinteger:');pleaseenterapositiveinteger:5>>fact_n=1;>>forii=1:n13fact_n=fact_n*ii;end>>fprintf('Thefactionalfunctionof%fis:%f',n,fact_n);Thefactionalfuncti
7、onof5.000000is:120.000000(1)While循环:clearsymsxnsum_xsum_x2xbarstd_devn=0;sum_x=0;sum_x2=0;x=input('Pleaseenterthefirstsample:');whileisnumeric(x)&&isempty(x)==0n=n+1;xmat(n)=x;sum_x=sum_x+x;x=input('Pleaseenternextsample');endx_bar=sum_x/n;forii=1:nsum_x2=sum_x2+(xmat(ii)-x_bar)^2;end
8、std_d
此文档下载收益归作者所有