MATLAB上机实验报告.docx
《MATLAB上机实验报告.docx》由会员分享,可在线阅读,更多相关《MATLAB上机实验报告.docx(15页珍藏版)》请在咨信网上搜索。
1、MATLAB上机实验报告专业:_姓名:学号:运行结果为:s= 55例4:在区间-2, -0.75 内,以步长0.25,对函数y =f (x) = l+1/x求值,并列表显示。r=U;s=;forx= -2.0:0.25:-0.75y=l+l/x;r=rxj;s=s y;endr; s运行结果为ans =-2.00000.5000-1.75000.4286-1.50000.3333-1.25000.2000-1.00000-0.7500-03333注意:for循环不能用循环内重新给循环变量赋值来终止for循环的循环变审;表达式1:表达式2:表达式3,其实为一行向后。 例5:用for循环求行向量卜
2、2,5,3,6,-2各元素之和。3=1-2,53,6,-2;s=0;k=0;for n=an%显示每一次循环变量的值k=k+l;%记录循环次数s=s+n;%计算行向量a各元素之和endk,s%显示总的循环次数和计算结果运行结果为n =-2n =5n =3n =6n =-2k=5s=10例6:观察以下程序的运行结果。data=3 9 45 6; 7 16 -1 5k=0;for n=data%显示每一次循环变量的值k=k+l; %记录循环次数x=n(l)-n(2)endk%显示总的循环次数运行结果为data =39456716-15n =37x =-4n =916x =-7n =45-1x= 4
3、6n =65x =1k =4例7:以for循环求1 ! +2 ! +10!的值。s=0;for i=l:10P=l;for j=l:iP=P*j;ends=s+p;ends运行结果为s=4037913注意:for循环可嵌套使用。例8:比拟下面两段程序的执行情况。(a) for n=l:10x(n)=sin(n*pi/10);end xn=l:10;x=sin(n*pi/10)两段程序的运行结果相同,均为x = 0.30900.58780.8090 0.95111.0000 0.95110.8090 0.58780.30900.0000当有一个等效的数组方法来解给定的问题时,应防止用for循环。
4、后者执行更快,更 直观、简便(2) while 循环for循环的循环次数往往是固定的,而while循环可不定循环次数,其一般形式为 while关系表达式语句 end 例9:分析以下程序的功能。num=0; EPS=1;while (1+EPS)1EPS=EPS/2; num=num+l; end num=num-l EPS=2*EPS 运行结果为: num =52EPS =2.2204e-016(3)if语句if语句的一般结构是if表达式语句1else语句2end例10:以for循环求容差变量EPS o EPS=1;for n=l:100EPS=EPS/2;if (1+EPS) sco re
5、三(1) score N90 分,优;(2)90 score N80 分,良;(3)70 分,中;(4) 70 score 260 分,及格;(5)60Vscore,不及格, score=input(请输入卷面成绩:score=);switch fix(score/10)case 9grade=优case 8grade=良,case 7grade=4qcase 6grade:,及格, otherwisegrade:不及格end运行结果为:请输入卷面成绩:score=87 grade = 良(5)try语句try语句是MATLAB特有的语句,其一般结构是try 语句1catch 语句2 end例
6、13:某图像文件名为pic ,但不知其存储格式为.bmp还是Jpg,试编程正确 读取该图像文件。trypicture=imread(,pic.bmp,/bmp,);filename=pic.bmp; catchpicture=imread(pic.jpg7jpg); filename=,pic.jpg;end filename 运行结果为filename = pic.jpg(6)程序流的控制1. break 语句终止本层for或while循环,跳转到本层循环结束语句end的下一条语句。2. return 语句终止被调用函数的运行,返回到调用函数pause 语句 其调用格式有(1) pause
7、:暂停程序运行,按任意键继续。(2) pause(n):程序暂停运行n秒后继续。(3) pause on/off :允许/禁止其后的程序暂停。3. continue 语句在for循环或while循环中遇到该语句,将跳过其后的循环体语句,进行下一次循环。6.3数据的输入与输出.键盘输入语句(input) 其调用格式有(l)x = input(prompt):显示提示字符串prompt,要求用户键盘输入x的值(2) x = inputCprompt/s):显示提示字符串,promp匕要求用户键盘输入字符型变量x值2.屏幕输出语句(disp)屏幕输出最简单的方法是直接写出欲输出的变量或数组名,后面不
8、加分号。此外,可以 采用disp语句,其调用格式为disp(x)MATLAB文件操作(l)fopen 语句(1) fid = fopen(filename):以只读方式翻开名为filename的二进制文件,如果文件可以 正常翻开,那么获得一个文件句柄号fid ;否那么fid=-l。(2) fid = fopen(filename,permission):以 permission 指定的方式翻开名为 filename 的二 进制文件或文本文件,如果文件可以正常翻开,那么获得一个文件句柄号fid(非0整数)否 那么 fid =-lo(3) fclose 语句(1) status = fclose(
9、fid):关闭句柄号fid指定的文件。如果fid是已经翻开的文件句柄 号,成功关闭,status =0;否那么status = -1(2) status = fclose(all):关闭所有文件(标准的输入/输出和错误信息文件除外)。成功关 闭,status =0:否那么 status = -1例13编写函数,统计M文件中源代码的行数(注释行和空白行不计算在内)。function y = lenm(sfile)% lenm count the code lines of a M-file,% not include the comments and blank liness=deblank(s
10、file);%删除文件名sfile中的尾部空格if length(s)2&any(lower(s(end-l:end)=.m)s=(s;.m,;%判断有无扩展名.m,假设没有,那么加上endif exist(s/file)=2;error(s/ not exist);return;end%判断指定的m文件是否存在;假设不存在,那么显示错误信息并返回fid=fopen(s;r);count=0;%翻开指定的 m 文件while feof(fid);line=fgetl(fid);%逐行读取文件的数据if isempty(line)| | strncmp(deblanks(line),%,l);%
11、判断是否为空白行或注释行continue;%假设是空白行或注释行那么执行下一次循环endcount=count+l;%记录源代码的行数end y=count;%删除字符串中的首尾空格的函数function st=deblanks(s);st=fliplr(deblank(fliplr(deblank(s);以lenm.m为例,调用并验证该函数。 sfile=lenm; y = lenm(sfile)y= 17面向对象编程创立类目录创立一个新类,首先应该为其创立一个类目录。(2)建立类的数据结构在MATLAB中,常用结构数组建立新类的数据结构,以存储具体对象的各种数据。创立类的基本方法为了使类的
12、特性在MATLAB环境中稳定而符合逻辑,在创立一个新类时,应该尽 量使用MATLAB类的标准方法。例14:创立一个名为curve的对象。(1)首先创立一个类目录curve,放在 c:my_classe 目录下,即 c:my_classescurve, 通过addpath命令将类目录增加到MATLAB的搜索路径中:addpath c:my_classes;(2)创立对象构造函数。具体如下:function c=curve(a)%curve类的对象构造函数%c = curve创立并初始化一个curve对象%参数a为1X2的细胞数组,al为函数名,a2为函数描述%函数必须和fplot要求的形式相同,
13、即y = f(x),参见fplot %如果没有传递参数,那么返回包含x轴的一个对象if nargin=0%在此情况下为默认的构造函数c.fcn=;c.descr=;c=class(c;curve,);%返回一个不能对类方法访问的空结构curve对象elseif isa(a, curve)c=a;%如果传递的参数是一个curve对象,那么返回该对象的副本elseif (ischar(al) & ischar(a2)c.fcn=al;c.descr=a2;c=class(cz curve); %返回一个 curve 对象elsedispfCurve class error #1: Invalid
14、argument.)%如果传递的参数是错误类型,那么将给出错误信 息End为了画出curve对象的曲线,创立plot方法如下:function p=plotl(cz limits)% curve.plotl在limits指定的区域中画出对象curve的图形% limits为x轴的坐标范围(xmin xmax),% 或 x、y 轴的坐标范围(xmin xmax ymin ymax).step=(limits(2)-limits(l)/40;x=limits(l):step:limits(2);%画出函数图形fplot(c.fcnjimits);title(c.descr);执行以下命令: par
15、abola=curve(x*x,抛物线)parabola = curve object: 1-by-l plotl(parabola,-2 2);MATLAB程序优化(1)预先声明数组空间。这样MATLAB就不必在每次输出结果时都重新调整数组的 大小(2)代码向量化。向量化主要是指用向量操作代替传统的循环语句,作为面向矩阵 运算的语言(3)在if,while和switch等语句中使用产生标量结果的条件表达式,可以加快判断语句(4)输入/输出数据时尽量使用函数load和save,它们比低级I /0文件函数快。(5)把程序中耗时的局部单独用C语言或Fortranc语言写成MEX文件,通常能 提高运
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 上机 实验 报告
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。