- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 Matlab 7.0程序设计 9.1 M文件入门 9.1.1 M文件的基本特点 从语言特点上来说,Matlab是一种解释性的语言,本身不能做任何事,只是对用户发出的指令起解释执行的作用。 因此,初次运行M文件,Matlab会将M文件编成代码并装入内存中,此过程会大大降低程序执行速度,但再次运行时,系统直接从内存中取出代码,速度将极大加快。 Matlab提供很多的工具箱,工具箱中的函数就是一个个的M文件,有了这些工具箱,Matlab才可以广泛应用到各个领域,如统计工具箱,金融工具箱,生物信息工具箱等等。 根据需要,用户可以在这些工具箱中添加自己的M文件 M文件有两种 脚本式(Script)和函数式(Function) 他们各有自己的特点,也必须满足一些标准 1函数式M文件和文件第一行的函数名最好相同,Matlab根据硬盘上的文件名来执行。 2函数式M文件名在Unix平台对大小写敏感,在win平台不分大小写,为了通用,建议对M文件只用小写 3函数式M文件可以包含对脚本文件的调用 4函数式M文件中可以出现多个函数,被称为子函数或是局部函数,子函数可以被这个M文件中的子函数调用,也可以被其他函数调用。 5除了子函数,M文件还可以调用私有M文件,只有在私有M文件父目录下的函数才能访问。 2 M文件的组成部分 function f=fact(n) %This is the H1 line %These are help text1 %These are help text2 f=prod(1:n); %this is the notation 9.1.2脚本式M文件 当需要重复输入某些命令时,直接在命令窗口输入显得比较麻烦,利用脚本文件就显得比较方便和简单 将要输入的命令按顺序放到扩展名为m的文件下,运行时只需输入该文件名 应注意避免和matlab内置函数和工具箱函数重名,以及搜索路径问题 (which函数查找所调用函数的位置) Eg 编一个脚本文件tensin,求sin(1),sin(2)…sin(10)的值 %这是一个关于脚本式M文件的例子 %用于介绍脚本式M文件的生成 %顺次求出sin(1)到sin(10)的值 for i=1:10 a=sin(i); fprintf(‘sin(%d)=’,i) fprintf(‘%12.8f\n’,a) end Eg 编辑一个脚本式M文件sinpic,绘制正弦曲线 %此文件用于绘制[-2*pi,2*pi]区间的正弦曲线 x=-2*pi:0.05:2*pi; y=sin(x); plot(x,y,’c+’) legend(‘正弦曲线图’) 9.1.3函数式M文件 函数式M文件比脚本式M文件要相对复杂一些, 脚本式只是将命令组织在一起,不需要带参数,也不一定返回结果 函数式一般都带参数,并且有返回结果 函数式第一行都是以function开始,其中的变量都不是全局变量,仅在函数运行期间有效。 Eg 判断某一年是否为闰年 function isleapyear(year) %该函数用于判断某一年是否为闰年 %使用格式为isleapyear(y),其中y是用户所要计算的年份 sign=0; if rem( sign=0; if rem(year,4)==0 sign=sign+1; End if rem(year,100)==0 sign=sign-1; end If rem(year,400)==0 sign=sign+1; End If sign==1 fprintf(‘%4d year is a leap year.\n’,year) Else Fprintf(‘%4d year is not a leap year.\n’,year) end 比较说明脚本式M文件和函数式M文件中变量的作用范围 函数式 hanshu(a),x1=a*3,x2=3/a,x3=3+a,x4=3-a 窗口赋值x1 x2 x3 x4为1,2,3,4,定义a ,运行函数 观察值是否变了? 脚本式,x1=a*3,x2=3/a,x3=3+a,x4=3-a 窗口赋值x1 x2 x3 x4为1,2,3,4,定义a 运行脚本 观察值是否变了? 9.2 matlab程序控制 最简单的程序控制就是顺序结构,用户依次输入命令语句即可,此外Matlab提供4中更高级的控制结构: if-else-end switch-case-otherwise-end for循环 while循环 9.2.1顺序结构 9.2.2选择语句 1只有一种选择时的情况 if 表达式 执行语句 end 编写函数ifpositive(x) 判断x是否大于零 2有两种选择时的情况 If 表达式 执行语句1 Else 执行
原创力文档


文档评论(0)