版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1.3 Matlab编程,Matlab不仅是一个交互式计算工具,也是一种效率极高的编程语言。 1.3.1 程序文件的编辑与调试,包含matlab语言代码的文件称 为M文件,其扩展名为.m。 用户如想灵活应用matlab去解决实际问题,充分调用matlab的科学技术资源,就需要编辑M文件,1.编辑M文件,M文件的类型是普通的文本文件,我们可以使用系统认可的文本文件编辑器来建立M文件。如dos下的edit,windows的记事本等。,具体的创建方法: (1) 在matlab命令窗 口点击File 菜单 New M-file,Matlab的程序编辑器窗口,(2) 程序编好后进行存盘:点击File S
2、ave As,在打开的对话框中选择存盘目录,键入文件名 (3).在指令窗键入文件名,就可以运行程序。 或在程序编辑器窗口点击DebugRun运行 !M文件的命名规则: 文件名以字母打头,不要以数字开头,也不能是汉字。,2.编辑器的功能 3.程序调试 4.设置搜索路径,1.3.2 Matlab文件的类型 M文件的语法类似于c语言,但又有其自身特点。它只是一个简单的ASCII码文本文件,执行程序时逐行解释运行程序,matlab是解释性的编程语言。,M文件有两类指令类文件(script files) 函数类文件(function files) (1). 指令类文件 简单的m文件 指令类文件实际上是一
3、串指令的集合,与在命令窗口逐行执行文件中的所有指令,其结果是一样的。没有输入输出参数。如:mag.m,(2). 函数文件 需要输入变量,返回输出变量 Matlab用户可以根据需要编辑自己的M文件,它们可以像库函数一样方便的调用,从而极大地扩展了Matlab 的能力。 对于某一类特殊问题,如创建了许多m函数文件,则可形成新的工具箱。 这种用Matlab语言创建定义新的Matlab函数的功能,正体现了Matlab语言强大的扩展功能。,1.函数类文件的结构: (1)函数定义行(关键字function) function 输出变量=函数文件名(输入变量P1,P2) (2)H1行, 以(%)开头,作为l
4、ookfor指令搜索的行 (3)函数帮助文本 以(%)开头,详细说明函数的功能及有关内容,是help查找的内容 (4)函数体语句 函数文件中的程序,包括流程控制、交互输入输出、计算、赋值、注释,也可以调用函数文件和指令类文件。如: average.m,特定规则: 函数m文件第一行必须以单词function作为引导词。 M文件的文件名必须是 .m。 3. 程序中的变量均为局部变量,不保存在工作 空间中。其变量只在函数运行期间有效。,2 .函数文件的调用 调用格式 输出变量=函数文件名(输入变量P1,P2) 注意:参数要保持与函数文件相同的顺序,同时不能多于函数文件中的参数数目,建立一个带参数c的
5、三变量函数 ff =-x2+y2-z2+6+c %program test2 function ff=test2(v,c) x=v(:,1); y=v(:,2); z=v(:,3); % x,y,z看成v的三个分量 ff=-x.2+y.2-z.2+6+c;,调用格式test2(v,c) 如要计算 x=1,y=0.3,z=-2,c=-4 test2(1,0.3,-2,-4),如要计算X=1,3,6,Y=2 2 7,Z=3 1 8,c=3 test2(1 2 3;3 2 1;6 7 8,3),3.局部变量和全局变量 1)通常,程序中的变量均为局部变量,这些变量独立于其他函数的局部变量和工作空间的变
6、量。 2)如果几个函数文件要共用一个变量,则要在这些函数文件中都定义这个变量是全局变量。,例:global A B C 将A、B、C三个变量定义为全局变量,1.3.流程控制,matlab语言的程序结构与其它高级语言是一致的,分为顺序结构,循环结构,分支结构。 (1).顺序结构 依次顺序执行程序的各条语句 (2).循环结构 被重复执行的一组语句,循环是计算机解决问题的主要手段。 循环语句主要有: for end,语法为: for 循环变量起始值:步长:终止值 循环体 end 步长缺省值为1,可以是任意正实数或负实数。对于正数,循环变量的值大于终止值时循环结束;对于负数,循环变量的值小于终止值时循
7、环结束。循环结构可以嵌套使用。, while end 循环 语法为:while 表达式 循环体 end 若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若不为真,则跳出循环体,向下继续执行。 !While循环和for循环的区别在于,while循环结构的循环体被执行的次数不是确定的,而for结构中循环体的执行次数是确定的。,例:用while循环求1100间整数的和 sum=0; i=1; while i=100 sum=sum+i; i=i+1; end sum,sum = 5050,(3). 分支结构根据一定条件来执行的各条语句。 if else end语句有3种形式 if 表达
8、式 执行语句 end if 表达式 是 语句1 else 否 语句2 end, if 表达式1 多分支 语句1 elseif 表达式2 语句2 elseif 表达式3 语句3 else 语句n end,这种结构实现了一种多路选择,比较复杂。可替代一般高级语言中的switch-case-end语句,c=input(请输入一个字符,s); if c=A end,例:输入一个字符,若为大写字母,则输出其后继字符,若为小写字母,则输出其前导字符,若为数字字符则输出其对应的数值,若为其他字符则原样输出。 程序如下:,aaab.m,(2)switch语句 格式:switch 表达式(可以是标量或字符串)
9、case 值1 语句1 case 值2 语句2 . otherwise 语句3 end,执行方式:表达式的值和哪种情况(case)的值相同,就执行哪种情况中的语句,如果不同,则执行otherwise中的语句。格式中也可以不包括otherwise,这时如果表达式的值与列出的各种情况都不相同,则继续向下执行。,例:color.m,注意:程序设计的优化 1.以矩阵或矢量运算代替循环运算 矩阵运算是Matlab的核心,因此在编程过程中应当注重对矩阵或矢量的整体运算,减少和避免对矩阵元素的操作。这称为矢量化编程。 2.数据的预定义 如果一段程序不能矢量化,可以预先对矢量或矩阵设定初值,这样可以加快程序运
10、行的效率。 例:对数表(duishubiao)和计时(jishi),3.其它指令 input 将用户从键盘输入数值、字符串、表达式赋予指定的变量。 例:n=input(How many apples= ) How many apples= 5 n = 5 disp() 在屏幕上显示引号中的内容 pause 暂停,等待用户响应 可令m文件执行暂停,并在继续执行前按任一个键 。,keyboard 与input类似,功能更强 keyboard 调用键盘与调用m文件一样,当keyboard在m文件中出现时,它停止文件的执行并控制键盘,用于修改程序。 break 中断 break 中断for, while循环语句的执行,在嵌套循环结构中, break则从最内层循环退出。,例:C2F.m,小 结,本节主要介绍了matlab语言程序设计基础。matlab 编程简单,容易掌握。 通过学习,应能编写简单程序 望你们今后能成为matlab高手!,上机作业: 1.编写m函数,计算函数值 2.相传古代印度国王要褒奖他的聪明能干的宰相达依尔(国际象棋发明者),问他要什么?达依尔回答:“陛下只要在国际象棋棋盘的第一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论