MATLAB程序设计实验.doc

上传人:最*** 文档编号:1605253 上传时间:2019-10-30 格式:DOC 页数:21 大小:581.50KB
返回 下载 相关 举报
MATLAB程序设计实验.doc_第1页
第1页 / 共21页
MATLAB程序设计实验.doc_第2页
第2页 / 共21页
MATLAB程序设计实验.doc_第3页
第3页 / 共21页
点击查看更多>>
资源描述
科学计算与数据处理实验报告学号姓名实验名称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文件的编写,运行和调试。知道了函数文件和脚本文件的相同点和不同点。同时也掌握了matlab程序设计中的基本语法,关系运算,以及for和while循环结构,if-else-end和switch的分支结构和异常处理的try-catch结构。通过自己调试一个程序,明白了程序调试的基本方法。自己通过对一个程序的性能剖析,知道了性能剖析的基本方法。21
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 模板表格


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!