- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五讲 Matlab的程序设计 —— Matlab语言称为第四代编程语言,程序简洁、可读性很强而且调试十分容易, 是Matlab重要组成部分。要充分体现和发挥Matlab的能力,必 须掌握Matlab程序设计 包括以下内容: M文件的功能和特点 M文件的形式 数据结构和全局变量 程序结构 程序流控制 字符与字符串 函数调用及变量传递 M文件的调试 一、m文件的功能和特点 用户如想灵活应用Matlab去解决实际问题,充分调用Matlab的科学技术资源,就需要编辑m文件 包含Matlab语言代码的文件称为m文件,其扩展名为.m。 编辑m文件可使用各种文本编辑器。 二、Matlab的工作方式 指令行操作方式 ? 通常Matlab以指令驱动模式工作,即在Matlab 窗口下当用户输入单行指令时,Matlab 立即处理这条指令,并显示结果,这就是Matlab命令行方式。 ? 命令行操作时,Matlab窗口只允许一次执行一行上的一个或几个语句。 在Matlab窗口输入数据和命令进行计算时,当处理复杂问题和大量数据时是不方便的。因此应编辑m文件。 命令行方式程序可读性差,而且不能存储,对于复杂的问题,应编写成能存储的程序文件。 m文件的编程工作方式 将Matlab语句构成的程序存储成以m为扩展名的文件,然后再执行该程序文件,这种工作模式称为程序文件模式。 程序文件不能在指令窗口下建立,因为指令窗口只允许一次执行一行上的一个或几个语句。 三、 m文件的形式 m文件的语法类似于c语言,但又有其自身特点。它只是一个简单的ASCII码文本文件,执行程序时逐行解释运行程序,Matlab是解释性的编程语言。 m文件有两类 ?独立的m文件 — 称命令文件 ?可调用m文件 — 称函数文件 (1). 命令文件 — 简单的m文件 命令文件实际上是一串指令的集合,与在命令窗口逐行执行文件中的所有指令,其结果是一样的。没有输入输出参数。 说明: 符号%引导的是注释行,不予执行. 不需要end作为M文件的结束标志. 若把untitle.m存放在自己的工作目录中,那么在运行untitle.m之前,就使自己的工作目录处于Matlab的搜索路径上。 文件运行后,存放在内存的变量可以通过whos指令看到,也可在workspace中看到。 (2) Matlab内置函数文件 Matlab自定义的函数文件称内置函数文件. 调用内置函数的方法:使用函数名并给出相应的入口、出口参数即可。 例如:sin.m函数——用type sin查不到。 调用格式:y=sin(2*x) 实际应用中: x=0:2*pi/180:2*pi; y=sin(2*x) plot(x,y) 又如 sqrt(x) —— 求x的平方根 abs(x)—— 求x的绝对值 det(a)—— 求行列式的值 等等。 Matlab拥有大量的内置数学函数,供我们在数值运算和符号运算中调用。 (3) 函数m文件— 需要输入变量,返回输出变量 Matlab用户可以根据需要编辑自己的m文件,它们可以像库函数一样方便的调用,从而极大地扩展了 对于某一类特殊问题,如创建了许多m函数文件,则可形成新的工具箱。 这种用Matlab语言创建定义新的Matlab函数的功能,正体现了Matlab语言强大的扩展功能。 函数m文件的格式: function 返回变量=函数名(输入变量) 注释说明语句段 程序语句段 特定规则: 函数m文件第一行必须以单词function作为引导词,必须遵循如下形式: function 因变量=函数名(自变量) m文件的文件名必须是函数名 .m。 程序中的变量均为局部变量,不保存在工作空间中。其变量只在函数运行期间有效。当函数文件执行完后,这些内部变量将被清除。 例2:计算向量元素的平均值 (1)建立函数文件,内容如下: function y=average(x) %向量元素的平均值 %语法:average(x),其中x为输入向量 %当输入非向量时,给出错误信息 [m,n]=size(x); if(~((m==1)|(n==1))|(m==1n==1)) error(input must be a vector); end y=sum(x)/length(x); (2)将文件average.m存盘,该文件定义了名为average的新函数。 (3)在指令窗中运行以下指令,可以求得1到100的平均值
文档评论(0)