MATLAB程序设计实验.doc_第1页
MATLAB程序设计实验.doc_第2页
MATLAB程序设计实验.doc_第3页
MATLAB程序设计实验.doc_第4页
MATLAB程序设计实验.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

科学计算与数据处理实验报告学号姓名实验名称MATLAB程序设计实验实验目的1、 掌握M文件的编辑、调试和性能剖析方法2、 掌握MATLAB脚本和函数的设计方法3、 掌握MATLAB程序的基本语法、关系运算和控制结构4、 掌握串演算函数的用法实验方案1、 编写两段简短的代码,演示MATLAB脚本和函数的不同。a) 新建一个文件为randplt.m,b) 编写函数stderr求实验误差2、 编写程序演示循环(for、while)、分支(if-else-end、switch-case)和异常处理(try-catch)控制结构的用法,并尽量体现各种关系运算符(=、=、=)的用法。c) 演示循环(for、while)d) 分支(if-else-end、switch-case)e) 异常处理(try-catch)3、 编写程序演示return、input、keyboard、pause、break、error、lasterr、warning、lastwarn等指令的功能和用法。a) return的功能和用法b) input的功能和用法c) keyboard的功能和用法d) pause的功能和用法e) break的功能和用法f) error的功能和用法g) lasterr的功能和用法h) warning的功能和用法i) lastwarn的功能和用法4、 统串演算实验:设计实验演示验证eval与feval的功能和用法。a) eval的功能和用法b) feval的功能和用法5、 程序调试实验。a) 出错时b) 改正后6、 程序性能剖析实验a) profile onb) relaxzzy(300)c) profile viewer实验记录1、 编写两段简短的代码,演示MATLAB脚本和函数的不同。a) 新建一个文件为randplt.m,data=randn(1,20); plot(data);运行结果:保存后选择debug/run菜单或按F5键运行,观察workspace中多出了一个变量data。b) 编写函数stderr求实验误差function err=stderr(arr)%实验误差(标准差估计)evaluate along each column of arrerr=std(arr)./sqrt(size(arr,1)-1);文件存为stderr.m, 运行时输入a=1;2;3;建立一个列数组a, 然后输入stderr(a)则给出a的方差运行结果:2、 编写程序演示循环(for、while)、分支(if-else-end、switch-case)和异常处理(try-catch)控制结构的用法,并尽量体现各种关系运算符(=、=、=)的用法。a) 演示循环(for、while)For循环 %for循环sum1=0;sum2=0;n=input(请输入一个数:) if n %while循环sum11=0;sum22=0;n=input(请输入一个数:) if n=0 sum11=sum11+1sum22=sum22+2n=n-1 endend运行结果:b) 分支(if-else-end、switch-case)if-else-end分支结构: %if-else-end分支:a=input(请输入一个数字:)if a1a=a+1elsea=a+2end运行结果:switch-case分支结构: %switch-case n=input(请输入成绩:); k=floor(n/10);switch k case 8,9,10 disp(优秀) case 7 disp(良好) case 6 disp(一般) otherwise disp(不及格)end运行结果:c) 异常处理(try-catch) a=magic(4);b=eye(3);tryc=a*bc=a(1:3,1:3)*bcatchc=a(1:3,1:3)*bend运行结果:3、 编写程序演示return、input、keyboard、pause、break、error、lasterr、warning、lastwarn等指令的功能和用法。a) return的功能和用法 %return n=input(请输入成绩:); k=floor(n/10);switch k case 8,9,10 disp(优秀)return case 7 disp(良好)return case 6 disp(一般)return otherwise disp(不及格)returnend运行结果:b) input的功能和用法 %input n=input(请输入一个数字:); k= mod (n,2);switch k case 1 disp(您输入的为奇数)return case 0 disp(您输入的为偶数)returnend运行结果:c) keyboard的功能和用法%keyboard启动键盘管理pause暂停执行 n=input(请输入成绩:);if n %breakfor n=1:100 if mod(n,17)=0 continue end break end disp( 100以内的自然数中第一个能被17整除的数是:) disp(n)运行结果:f) error的功能和用法n=input(请输入一个数字:);if(n0) y=log(n);else error(定义域大于0);end运行结果:g) lasterr的功能和用法 lasterr运行结果:h) warning的功能和用法%warning n=input(请输入成绩:);if n warning(定义域大于0); warning(定义域小于0); lastwarn运行结果:4、 串演算实验:设计实验演示验证eval与feval的功能和用法。a) eval的功能和用法K a=b=magic(4);eval(a)运行结果:b) feval的功能和用法K h=sin;x=-pi:pi/10:pi;y=feval(h,x);运行结果:5、 程序调试实验。a) 出错时运行结果:b) 改正后把原程序中的xxmu=xmu*size(yy)改为xxmu=xmu*ones(size(yy)。运行结果:改正后,函数实现的功能:6、 程序性能剖析实验profile onrelaxzzy(300)profile viewer运行结果:函数实现的功能:Profile Summary窗口显示:relaxzzy函数的进行运行分析由上例图可知,relaxzzy函数中最耗时的语句是newplate(j,k)=(plate(jm1,km1)/2+plate(jm1,k)+.plate(jm1,kp1)/2+plate(j,km1)+plate(j,kp1)+. plate(jp1,km1)/2+plate(jp1,k)+plate(jp1,kp1)/2)/6其执行时间为0.651 s,被调用次数为3000000次。这个语句可以加速,用过向量化改为矩阵的形式,就可以加速了。实验总结MATLAB脚本和函数的异同点:M脚本文件与M函数文件都是由一系列的语句组成的相对独立的一个运行体。M脚本文件没有参数传递功能,但M函数文件有此功能。M函数文件的格式有严格规定,它必须以“ function ”开头。函数文件与脚本文件的主要区别在于:函数文件一般都要带参数 , 都要有返回结果 , 而脚本文件没有参数与返回结果。函数文件的变量是局部变量 , 运行期间有效 , 运行完毕就自动被清除 , 而脚本文件的变量是全局变量 , 执行完毕后仍被保存在内存中。通过这次试验我掌握了M文件的编写,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论