- 1、本文档共42页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章M文件和程序设计概要
再在命令窗口建立下面命令 五、有关工作空间 1. 工作空间 工作空间分成两类:基本工作空间、函数工作空间。 基本工作空间 基本工作空间是Matlab启动后自动创建的,只有关闭了Matlab后基本工作空间才会被删除。基本工作空间内部包括Matlab建立的特殊变量(如pi、i、j、NaN等)和命令窗口执行语句过程中生成的变量。 函数工作空间 函数工作空间是函数文件运行时自动创建的工作空间,它是临时的,当函数运行完毕后,会被系统自动撤销。 其中保存了函数内部定义或者运算生成的临时变量,它们在函数执行完成后就不存在了。 2. 局部变量和全局变量 局部变量 指函数工作空间的临时变量。 只能被定义它的函数使用。 在函数的定义中,其输入变量和输出变量就是局部变量,即函数的输入变量和输出变量只能在本函数内部被使用。 全局变量 通过global关键字可以定义全局变量。 全局变量可以被所有工作空间共享,但是使用之前要先在工作空间内用global关键字声明为全局变量。 建议在函数的开始处定义或声明全局变量,全局变量的名字一般采用大写字母命名。 六、子函数和私有函数 子函数和私有函数指由用户开发的某些工程中专用的,其他程序很少会用到的一类函数。为了限制函数的使用范围,Matlab支持子函数和私有函数。 1.子函数 每个文件的第一行定义的是主函数; 只有主函数可以被其他程序调用; 函数文件的名字必须和主函数相同; 子函数只能被处在同一个文件中的主函数或者其他子函数调用; 主函数和各个子函数的工组空间是彼此独立的,即每个函数拥有自己独立的工作空间。 2.私有函数 私有函数是在函数M文件所在目录的private子目录中的函数M文件,其性质如下: 私有函数只能被private文件夹中定义的M文件调用,其他目录的M文件或者命令窗口无权调用私有函数。 私有函数的定义和构成和普通函数相同。 例4.2.4:编写函数文件求 首先编写求阶乘和的程序AddJc.m 再在命令窗口键入以下命令: 运行结果为: 这里s的值只在子函数Jc中存在,在主函数AddJc中为无效变量。 七、 M文件的执行 当Matlab遇到一个新的标识符corv时,它将按照下面步骤寻找这个标识符。 检查corv是否是一个变量名; 检查corv是否是内建函数名; 检查corv是否是子函数; 检查corv是否是私有函数; 检查corv是否是当前目录中的文件; 在Set Path指定的路径内搜索corv文件; Matlab将使用最先找到的那个corv标识符。如果经过上述步骤的搜索,也无法找到corv标识符,则给出提示信息“??? Undefined function or variable corv.” 习 题 ,当x=100时,求y的值。 4.2 编写函数文件求半径为r的圆的面积和周长。 4.3 已知 4.5 编制程序,计算1+2+…+n2000时的最大n值。 4.6 分别用for和while循环结构编写程序, 求出K= 。 Exercise 2 Write a function that builds a random nxn adjacency matrix with m edges. Your matrix should carefully follow this specication: ? must be called make_rand_edges.m. ? E must be symmetric. ? E must have exactly 2m nonzero entries (note the 2, why?). ? E must have a zero diagonal (no local loops). ? each node should have at least one edge (we dont want disconnected floating nodes, although disconnected components are ok). ? should raise an error if m is less than n. ? E must be random (we dont want node 1 always connected to node 2 for example, even if that would make some of the previous specs easier). 第四章 M文件和程序设计 4.1 程序控制语句 4.2 命令文件和函数文件 4.3 字符串的求值(不讲) 4.4 程序性能优化(不讲) 4.5 面向对象编程(不讲) 内容简介 4.1 程序控制语句
文档评论(0)