赞
踩
文章目录
经过前面一段时间对MATLAB的学习,了解了MATLAB的运行环境、安装与使用、帮助系统,以及MATALB数组、向量和矩阵的生成与基本运算等,接下来就可以利用MATLAB来进行程序设计了,学习MATLAB程序设计的方法以及注意事项,在一个个小程序设计中提升自我。
MATLAB程序设计既有传统高级语言的特征,又有自己独特的优点。在MATLAB程序设计中,要充分利用MATLAB数据结构的特点,可以使程序结构简单,编程效率高,提升我们的工作效率!
M文件即利用MATLAB编写的程序文件,M文件是由若干个MATLAB命令组合在一起构成的,它可以完成某些特定的操作,也可以实现某种算法。M文件不仅可以完成编写的功能及算法,也可以调用MATLAB内封装完成的工具箱,来达到程序设计的目的。
在MATLAB程序设计中,M文件通常可以分为命令文件和函数文件:
① 命令文件没有输入参数,也不返回输出参数,而函数文件可以带输入参数,也可以返回输出参数;
② 命令文件对MATLAB工作空间中的变量进行操作,文件中所有命令的执行结果也完全返回到工作空间中,而函数文件中定义的变量为局部变量,当函数文件执行完毕后,这些变量也将被清除;
③ 命令文件可以直接运行,在MATLAB命令窗口输入命令文件的名字,就会顺序执行命令文件中的命令,而函数文件不能直接运行,而要以函数调用的方式运行。
M文件就相当于一个文本文件,它不仅可以在MATLAB上编辑,也可以使用其他编辑器进行编辑修改,但是这里个人建议还是使用MATLAB自带的文本编辑器,这样对我们学习使用MATLAB也更有益处。
在MATLAB中,建立M文件有两种方法:
① 通过MATLAB左上角的菜单栏进行操作,点击新建脚本文件,屏幕上就会出现MATLAB的文本编辑器窗口,在该窗口输入我们的程序内容,点击保存,保存文件的后缀名是.m的文件,这就表示一个M文件建立完成;
② 通过命令建立M文件,在MATLAB命令行窗口输入edit命令,即可产生MATLAB的文本编辑器窗口,保存过后后缀为.m的文件即可;
M文件的打开也有三种方式:
① 通过菜单操作打开M文件,从MATLAB主窗口的菜单中找到Open命令,在屏幕弹出的对话框中找到需要打开的M文件即可;
② 通过命令打开M文件,在MATLAB的命令行窗口输入命令edit 文件名,即可打开所需M文件;
③ 将MATLAB路径定位到M文件保存的路径下,点击当前文件夹下需要打开的M文件,此时M文件就会出现在文本编辑器当中。
在MATLAB程序设计中,共有3中程序控制结构,无论再复杂的程序都可以由这3种基本的结构构成,这3种程序控制结构就是顺序结构、选择结构和循环结构。
顾名思义,顺序结构就是按照程序中的语句排列顺序依次执行,直到程序的最后一个语句。这是最简单的一种控制结构,一般会涉及到数据的输入、数据的计算处理以及数据输出等内容。
① 数据的输入:在MATLAB中,数据的输入可以用input函数来进行,该函数的调用格式为:
input(提示信号,选项);
这里的提示信息为一个字符串,目的是为了提示用户输入什么样的数据信息,如请输入一个3行3列的矩阵等等;选项则是用户输入的信息,允许用户输入一个字符串,例如3行3列的矩阵。
② 数据的处理:数据的处理即数组、向量或者矩阵的变换、基本的数学运算等。
③ 数据的输出:在MATLAB中,数据的输出函数有disp和fprintf两种,这两种函数的格式为:
disp(输出项); fprintf('输出形式‘,输出项);
对于disp函数来说,输出项可以为字符串,也可以是矩阵。对于fprintf函数来说,输出形式有%f(浮点数)、%d(科学计数法)、%c(字符串)等。
上图这个例子就很好地说明了我们的数据输入、数据处理以及数据输出的内容,根据上面的例子,输入函数input赋值给圆的半径radius,然后根据圆的面积公式进行数据处理,计算除圆的面积,然后再用disp和fprintf函数对计算结果进行输出。当运行该程序时,命令行窗口会提示你输入圆的半径信息,我这里输入的半径是5,回车后就会输出圆的面积数据,这里是用两个函数都返回了圆的面积数据。
选择结构是根据给定的条件是否满足为依据的,分别执行不同的语句。MATLAB中用于实现选择控制语句的有if语句、switch语句。
① if语句:if语句是一个条件分支语句,若满足表达式的条件,则往下继续执行;若不满足条件,则跳出if结构。else if表达式与else为可选项,这两条语句可根据具体情况有所取舍。另外要注意的是每一个if都对应一个end,即有几个if,就要有几个end。
if语句语法: if 表达式 1
语句 1
else if 表达式 2
语句 2
else
语句 3
end
end
② switch语句:switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式为:
switch 表达式
case 表达式 1
语句 1
case 表达式 2
语句 2
......
case 表达式 m
语句 m
otherwise
语句 n
end
switch语句的执行过程如上所示,当表达式的值等于表达式1的值时,执行语句1,当表达式的值等于表达式2的值时,执行语句2,以此类推;如果表达式的值不等于任何一个case的值时,则执行otherwise后面的语句n,跳出switch语句。
如上图是利用switch语句选择商品售价范围,这时我们兜里只有500元,当商品售价低于200元时,返回0,说明我们买起来不心疼;当商品售价在200到500元时,返回1,买起来肉疼;当商品售价大于500元时,返回无穷大,买不起,根本买不起啊!这就好理解多了噻!
循环结构是指按照给定的条件,当条件一直满足时,重复执行指定的语句,当条件不满足时,跳出该循环结构。MATLAB提供了两种实现循环结构的语句,即for循环语句和while循环语句。
① for循环语句:for语句的格式为:
for 循环变量=表达式1:表达式2:表达式3
循环体语句
end
其中表达式1的值为循环变量的初始值,表达式2为步长(当步长为1时,表达式2可以省略),表达式3为循环变量的终值;for循环语句的执行过程是首先计算3个表达式的值,再将表达式1的值赋值给循环变量,如果此时循环变量的值介于表达式1和表达式3之间,则执行循环体语句,否则结束循环的执行。
② while语句:while语句的格式为:
while(条件)
循环体语句
end
其执行过程为,若条件成立,则执行循环体语句,执行后再继续判断条件是否成立,如果仍然成立,则继续循环,如果不成立,则跳出循环。
③ break语句和continue语句:这两个语句也是与循环密切相关的语句,它们一般都是与if语句配合使用。break语句用于终止循环的执行,continue语句控制跳过循环体中的某些语句。
④ 循环的嵌套:如果一个循环结构中有包含另一个循环结构时,就叫做循环的嵌套。在循环的嵌套结构中,仍然可以应用前面介绍的3种循环语句,在设计多重循环嵌套结构时,要特别注意内、外循环之间的关系,以及各种语句放置的位置,否则会使设计出来的循环结构发生错误!
啥也别说了,直接上例子吧!!!
函数文件是另一种形式的M文件,每一个函数文件都定义一个函数,实际上MATLAB中提供的标准函数大部分都是由函数文件定义的。
函数文件的基本结构为:
function 输出形参表=函数名(输入形参表)
注释说明部分
函数主体语句
函数文件都是由function语句引导,函数文件名通常由函数名再加上拓展名.m组成,函数名的命名规则与变量名相同。函数文件名与函数名可以不相同,当两者不相同时,MATLAB会忽略函数名而直接调用函数文件名,为了避免发生错误,最好将函数名和函数文件名统一。
函数文件编制好后,就可以调用其函数进行计算了。
函数调用的一般格式为:
[输出实参表] = 函数名(输入实参表)
函数调用需要注意的是,在调用时各实参出现的顺序、个数要与函数定义时形参的顺序、个数对齐,否则会出现错误。函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。并且在MATLAB中,函数可以实现嵌套调用,即一个函数可以调用其他函数,也可以实现自身调用,这叫做递归函数。
在MATLAB中,函数文件中的变量是局部的,与其他函数文件及MATLAB工作空间相互隔离,即在一个函数文件中定义的变量不能被另一个函数文件引用。如果在若干个函数中,都把某一个变量定义为全局变量,那么这些函数将公用这一个变量。全局变量的作用范围是整个MATLAB工作空间,所有的函数都可以对它进行存取和修改。
全局变量定义格式为:
global 变量名
值得注意的是,全局变量虽然可以很方便的使用,但对我们程序的可读性产生了一些影响,破坏了函数对变量的封装。所以还是最好少使用全局变量吧,实在要用,取一个见名知意的名字较好,以免混淆!
今天学习了利用MATLAB来进行程序设计,把程序设计的流程以及设计方法都理论性地学习了一遍,下一次就用几个例题来巩固前面所学的内容了,这样才能加深印象嘛!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。