资源描述
数数 学学 实实 验验主讲教师主讲教师穆志民穆志民 matlab软件基础内容软件基础内容。文章排版基本方法。文章排版基本方法。数据绘图及图片处理。数据绘图及图片处理。大量数据处理基本方法及软件实现。大量数据处理基本方法及软件实现。最优化基本方法及软件实现。最优化基本方法及软件实现。其他补充。其他补充。(一些比较高级的建模方法等一些比较高级的建模方法等)学学 习习 内内 容容1、matlab基本操作2、高数中的matlab3、线代中的matlab4、概率方程中的matlab数学数学实验使用的软件实验使用的软件1.优化软件:优化软件:lingolingo2.数据计算软件:数据计算软件:MatlabMatlab,MathematicaMathematica3.文章的排版软件:文章的排版软件:wordword,latex(latex(数学数学)4.数据统计处理软件:数据统计处理软件:excelexcel,spssspss,sassas5.论文阅读软件:论文阅读软件:word(word(.doc.doc),Adobe ),Adobe Acrobat(Acrobat(.pdf).pdf),超星阅览器超星阅览器rread(rread(电子书,电子书,(.pdg.pdg,.pdf.pdf),cajview(),cajview(.kdh.kdh,.pdf.pdf)第第一一章章matlab基础基础知识知识。u1节节.matlab简介及其基本内容简介及其基本内容u2节节.高等数学中的高等数学中的matlabu3节节.线性代数中的线性代数中的matlabu4节节.概率统计中的概率统计中的matlabu5节节.方程方程(组组)中的中的matlabu6节节.数值处理与数值处理与matlab 1.1.11.1.1MATLABMATLAB简介简介简介简介MATLAB是一个集数值计算、符号分析、图象显示、是一个集数值计算、符号分析、图象显示、文字处理于一体的大型集成化软件文字处理于一体的大型集成化软件.它最初由美国的它最初由美国的CleveMoler博士所研制博士所研制.其目的是为线性代数等课程中其目的是为线性代数等课程中的矩阵运算提供一种方便可行的实验手段的矩阵运算提供一种方便可行的实验手段.经过十几年的经过十几年的市场竞争和发展,市场竞争和发展,MATLABMATLAB已发展成为在自动控制、生物已发展成为在自动控制、生物医学工程、信号分析处理、语言处理、图像信号处理、医学工程、信号分析处理、语言处理、图像信号处理、雷达工程、统计分析、计算机技术、金融界和数学界等雷达工程、统计分析、计算机技术、金融界和数学界等各各行各业中都有极其广泛应用的数学软件行各业中都有极其广泛应用的数学软件.归纳归纳起起来来,MATLAB,MATLAB具有以下几个特点:易学、适用范围广、功能强、具有以下几个特点:易学、适用范围广、功能强、开放性强、网络资源丰富开放性强、网络资源丰富.由于由于MATLABMATLAB的强大功能的强大功能,它能它能使使用者从繁重的计算工作中解脱出来使使用者从繁重的计算工作中解脱出来,把精力集中于研把精力集中于研究、设计以及基本理论的理解上究、设计以及基本理论的理解上,所以所以,MATLAB,MATLAB已成为在已成为在校大学生、硕士生、博士生所热衷的基本数学软件校大学生、硕士生、博士生所热衷的基本数学软件.在此在此,我们把我们把MATLABMATLAB作为学习数学的工具介绍给读者作为学习数学的工具介绍给读者,希望能有希望能有利于读者今后的学习利于读者今后的学习.由于由于MATLAB拥有大量的常用数学函数、工拥有大量的常用数学函数、工具箱,基本包括了现今数学、物理及工程应用领具箱,基本包括了现今数学、物理及工程应用领域的常用函数,如能熟练掌握,无论在编程时间域的常用函数,如能熟练掌握,无论在编程时间或程序量上,都远远低于或程序量上,都远远低于Fortran、C等高级语等高级语言,尤其在处理矩阵和向量计算方面更具有无可言,尤其在处理矩阵和向量计算方面更具有无可比拟的优势。比拟的优势。我们在数学建模竞赛中,由于只有短短的三我们在数学建模竞赛中,由于只有短短的三到四天,而论文的评判不仅注重计算的结果更注到四天,而论文的评判不仅注重计算的结果更注重模型的创造性等很多方面,因此比赛中把大量重模型的创造性等很多方面,因此比赛中把大量的时间花费在编写和调试程序上只会喧宾夺主,的时间花费在编写和调试程序上只会喧宾夺主,是很不值得的,这时使用是很不值得的,这时使用MATLAB可以很大程可以很大程度上的方便计算、节省时间,使我们将精力更多度上的方便计算、节省时间,使我们将精力更多的放在模型的完善上,所以是较为理想的的放在模型的完善上,所以是较为理想的。Matlab的安装的安装Matlab有各种版本,早期有有各种版本,早期有Matlab1.0for386的的DOS版本,版本,后来逐步发展这里介绍的版本是后来逐步发展这里介绍的版本是Matlab6 6.x xforWindows因为它使用方便,界面美观,我们选择它作为主要讲解因为它使用方便,界面美观,我们选择它作为主要讲解版本版本Matlab还有许多附加的部分,最常见的部分称为还有许多附加的部分,最常见的部分称为Simulink,是一个用作系统仿真的软件包,它可以让您定,是一个用作系统仿真的软件包,它可以让您定义各种部件,定义各自对某种信号的反应方式及与其它部义各种部件,定义各自对某种信号的反应方式及与其它部件的连接方式最后选择输入信号,系统会仿真运行整个件的连接方式最后选择输入信号,系统会仿真运行整个模拟系统,并给出统计数据模拟系统,并给出统计数据Simulink有时是作为有时是作为Matlab的一部分提供的,称为的一部分提供的,称为MatlabwithSimulink版本版本Matlab还有许多工具箱,它们是根据各个特殊领域的需要,还有许多工具箱,它们是根据各个特殊领域的需要,用用Matlab自身的语言编写的程序集,使用起来非常方便自身的语言编写的程序集,使用起来非常方便您可以视工作性质和需要购买相应的工具箱常见的工具您可以视工作性质和需要购买相应的工具箱常见的工具箱有:箱有:SignalProcess信号处理信号处理SystemIdentification系统辨识系统辨识Optimization优化优化NeuralNetwork神经网络神经网络ControlSystem自动控制自动控制Spline样条样条SymbolicMath符号代数符号代数ImageProcess图像处理图像处理NonlinearControl非线性非线性控制控制Statistics统计统计常见的工具箱常见的工具箱MATLABMATLAB的运行的运行 启动启动MATLABMATLAB点击点击MATLAB图标图标,进入到进入到MATLAB命令窗(命令窗(MATLABCommandWindowMATLABCommandWindow).在命令在命令窗内窗内,可以输入命令、编程、进行计算可以输入命令、编程、进行计算.学会使用学会使用helphelp命令命令在命令窗内输入在命令窗内输入helphelp命令命令,再再敲回车键敲回车键.在屏幕上出现了在线帮助总览在屏幕上出现了在线帮助总览.(注意:(注意:MATLABMATLAB命令被输入后命令被输入后,必需敲回车键才能执行必需敲回车键才能执行.为行文方便为行文方便,以后以后不再每次提醒不再每次提醒“敲回车键敲回车键”.”.学会使用学会使用helphelp命令命令,是学习是学习MATLAB的有效方法的有效方法.例如:要想知道例如:要想知道MATLAB中的基中的基本数学函数有哪些本数学函数有哪些,可以在总览的第五行查到:可以在总览的第五行查到:MATLAB中的中的“基本数学函数基本数学函数”用用elfunelfun(elementary function)(elementary function)表表示示,于是于是,可进一步键入:可进一步键入:“helpelfun”,“helpelfun”,屏幕上将出现屏幕上将出现“基本数学函数基本数学函数”表表.(注意:(注意:helpelfunhelpelfun之间有空格之间有空格,以后不再每次提醒以后不再每次提醒.)如果想了解)如果想了解sinsin函数怎样使用函数怎样使用,可进可进一步键入一步键入helpsin.helpsin.在工具栏中点击在工具栏中点击helphelp按扭按扭,或点击?或点击?号按扭号按扭,与上面获取帮助信息的方法是等效的与上面获取帮助信息的方法是等效的.常用控制命令:clc%清屏clear%清变量save%保存变量load%导入变量一些演示命令:logosurf(peaks(20)等学会使用学会使用demodemo命令命令在命令窗内输入在命令窗内输入demo命令命令,再敲再敲回车回车,键屏幕上将出现演示窗口键屏幕上将出现演示窗口.(MATLABDemoWindow)一共有三个窗口)一共有三个窗口,左边的窗口左边的窗口显示欲演示内容的大标题显示欲演示内容的大标题,选定其中一项选定其中一项,右下方的小窗口显右下方的小窗口显示欲演示的具体内容示欲演示的具体内容,选中其中一栏选中其中一栏,再点击再点击run按扭按扭,屏幕上屏幕上将演示选定的演示程序将演示选定的演示程序.右上方的窗口显示关于大标题的一右上方的窗口显示关于大标题的一些说明些说明.在命令窗内输入在命令窗内输入type(文件名文件名),将显示演示程序的将显示演示程序的M文件文件,仔细研究演示程序的仔细研究演示程序的M文件文件,是学习是学习MATLAB的又一的又一有效方法有效方法.进入演示窗还有另一方法:在工具栏中点击进入演示窗还有另一方法:在工具栏中点击Help栏栏,下拉式下拉式菜单中点击菜单中点击examplesanddemos项项,即可进入演示窗口即可进入演示窗口.退出退出 退出退出Matlab可键入可键入quit或或exit或选择相应的菜单或选择相应的菜单中止中止Matlab运行会引起工作空间中变量的丢失运行会引起工作空间中变量的丢失。命命令令含含义义help在线帮助在线帮助helpwin在线帮助窗口在线帮助窗口helpdesk在线帮助工作台在线帮助工作台demo运行演示程序运行演示程序ver版本信息版本信息readme显示显示ReadmeReadme文件文件who显示当前变量显示当前变量whos显示当前变量的详细信息显示当前变量的详细信息clear清空工作间的变量和函数清空工作间的变量和函数pack整理工作间的内存整理工作间的内存load把文件调入变量到工作间把文件调入变量到工作间save把变量存入文件中把变量存入文件中quit/exit退出退出MATLABMATLABwhat显示指定的显示指定的matlabmatlab文件文件lookfor在在HELPHELP里搜索关键字里搜索关键字which定位函数或文件定位函数或文件path获取或设置搜索路径获取或设置搜索路径echo命令回显命令回显cd改变当前的工作目录改变当前的工作目录pwd显示当前的工作目录显示当前的工作目录dir显示目录内容显示目录内容unix执行执行unixunix命令命令dos执行执行dosdos命令命令!执行操作系统命令执行操作系统命令computer显示计算机类型显示计算机类型MATLAB系统命令系统命令 1.1.2 1.1.2 变量、语句、矩阵与函数变量、语句、矩阵与函数变量变量,在在MATLABMATLAB中中,变量由字母、数和下划线组变量由字母、数和下划线组成成.第一个字符必须是字母第一个字符必须是字母.一个变量最多由一个变量最多由3131个个字符组成字符组成,并区分大小写并区分大小写.下面是下面是MATLABMATLAB中表示特中表示特殊量的字符:殊量的字符:pipi(圆周率)、(圆周率)、epseps(最小浮点数)、(最小浮点数)、InfInf(正无穷大)、(正无穷大)、NaNNaN(表示(表示0/00/0或或inf-infinf-inf等不等不定值)、定值)、i,j,j(虚数单位)(虚数单位)语句语句,MatlabMatlab的表述语句、变量的类型说明由的表述语句、变量的类型说明由MatlabMatlab系统解释和判断系统解释和判断MatlabMatlab语句通常形式为:语句通常形式为:变量变量=表达式表达式或者使用其简单形式为:或者使用其简单形式为:表达式表达式表达式由操作符或其它特殊字符、函数和变量表达式由操作符或其它特殊字符、函数和变量名组成表达式的结果为一个矩阵,显示在屏幕名组成表达式的结果为一个矩阵,显示在屏幕上,同时保存在变量中以留用如果变量名和上,同时保存在变量中以留用如果变量名和“=”=”省略,则具有省略,则具有ansans名名(意思指回答意思指回答)的变量将自动建立例如:键入的变量将自动建立例如:键入1900/81 结果为:结果为:ans=23.4568需注意的问题有以下几点:需注意的问题有以下几点:*语句结束键入回车键,若语句的最后一个字符是分语句结束键入回车键,若语句的最后一个字符是分号,即号,即“;”,则表明不输出当前命令的结果,则表明不输出当前命令的结果*如果表达式很长,一行放不下,可以键入如果表达式很长,一行放不下,可以键入“”(三个点,但前面必须有个空格,目的是避免将形如(三个点,但前面必须有个空格,目的是避免将形如“数数22”理解为理解为“数数2.”2.”与与“.”“.”的连接,从而导致错的连接,从而导致错误),然后回车误),然后回车*变量和函数名由字母加数字组成,但最多不能超过变量和函数名由字母加数字组成,但最多不能超过6363个字符,否则系统只承认前个字符,否则系统只承认前6363个字符个字符*Matlab变量字母区分大小写,如变量字母区分大小写,如A和和a不是同一个变不是同一个变量,函数名一般使用小写字母,如量,函数名一般使用小写字母,如inv(A)不能写成不能写成INV(A),否则系统认为未定义函数,否则系统认为未定义函数矩阵方式输入矩阵方式输入A=2,35;357;458%矩阵输入矩阵输入(a为为2*3阶阶矩阵)矩阵)b=3;5;7%矩阵输入矩阵输入det(A)%方阵行列式方阵行列式inv(A)%方阵的逆方阵的逆x=Ab%ax=b方程组的解方程组的解y=inv(A)*b%与与x相同相同disp(a,b,x)%显示矩阵显示矩阵矩阵矩阵,MATLAB的变量及数组均是以向量或矩阵方式存储的变量及数组均是以向量或矩阵方式存储MATLAB中矩阵的输入方法如下:中矩阵的输入方法如下:A=a11,a1n;am1,amn.逗号是同一行数之间的分隔符逗号是同一行数之间的分隔符(也可用空格代替);分号是不同行的分隔符(也可用空格代替);分号是不同行的分隔符.MATLAB中基本代数运算符中基本代数运算符运算运算符号符号举例举例加法,加法,a+b+5+3减法,减法,a-b-5-3乘法,乘法,ab*5*3除法,除法,ab/or48/4=448=12乘幂,乘幂,ab52=25MATLAB中向量中向量(数组数组)、矩阵基本运算符、矩阵基本运算符加法,A+B+12+34=1+32+4减法,A-B-12-34=1-3,2-4乘法,A*B*1,2*3;4=11A.*B.*1,2.*3,4=3,8除法,A/B(AB)/1,2;34/1,4;9,16=0.1,0.1;-0.60.4A./B(A.B)./1,2;34./1,2;3,2=1,1;1,2乘幂,方阵的幂1,2;342=710;15,22元素的幂.1,2;34.2=1,4;9,16例:我们要计算例:我们要计算可键入可键入:y=sin(pi/6)y=sin(pi/6)得得y=0.5000y=0.5000如果我们键入:如果我们键入:x=0,pi/6,pi/3,pi/2,2*pi/3,5*pi/6,pi;x=0,pi/6,pi/3,pi/2,2*pi/3,5*pi/6,pi;y=sin(x),y=sin(x),得得y=00.50000.86601.0000y=00.50000.86601.00000.86600.50000.00000.86600.50000.0000这里这里,对于对于x x有更简洁的输入方法:有更简洁的输入方法:x=0 x=0:pi/6pi/6:pi,pi,此命令表此命令表示示x x从从0 0开始开始,以以pi/6pi/6为步长变到为步长变到pipi为止为止.如果我们键入:如果我们键入:x=0,pi/6;pi/3,pi/2;x=0,pi/6;pi/3,pi/2;y=sin(x)y=sin(x)得得y=00.5000y=00.50000.86601.00000.86601.0000其它的函数的用法与此类似其它的函数的用法与此类似.MATLAB中符号函数的表示函数函数,MATLAB提供了大量的函数提供了大量的函数.可以通过可以通过help查询查询.例如例如sqrt(开方)、(开方)、log(常用对数)、(常用对数)、log10(以(以10为底的对数)为底的对数)、sin(正弦)等(正弦)等.MATLAB常用的基本数学函数常用的基本数学函数abs(x):纯量的绝对值或向量的长度:纯量的绝对值或向量的长度sqrt(x):开平方:开平方round(x):四舍五入至最近整数:四舍五入至最近整数fix(x):无论正负,舍去小数至最近整数:无论正负,舍去小数至最近整数floor(x):地板函数,即舍去正小数至最近整数:地板函数,即舍去正小数至最近整数ceil(x):天花板函数,即加入正小数至最近整数:天花板函数,即加入正小数至最近整数rat(x):将实数:将实数x化为分数表示化为分数表示rats(x):将实数:将实数x化为多项分数展开化为多项分数展开sign(x):符号函数:符号函数(Signumfunction)。当当x0,sign(x)=1。rem(x,y):求:求x除以除以y的余数的余数gcd(x,y):整数:整数x和和y的最大公因数的最大公因数lcm(x,y):整数:整数x和和y的最小公倍数的最小公倍数exp(x):自然指数:自然指数pow2(x):2的指数的指数log(x):以:以e为底的对数,即自然对数或为底的对数,即自然对数或log2(x):以:以2为底的对数为底的对数log10(x):以:以10为底的对数为底的对数MATLAB常用的三角函数常用的三角函数sin(x):正弦函数正弦函数cos(x):馀弦函数馀弦函数tan(x):正切函数正切函数asin(x):反正弦函数:反正弦函数acos(x):反余弦函数反余弦函数atan(x):反正切函数:反正切函数atan2(x,y):四象限的反正切函数:四象限的反正切函数sinh(x):超越正弦函数超越正弦函数cosh(x):超越馀弦函数超越馀弦函数tanh(x):超越正切函数超越正切函数asinh(x):反超越正弦函数反超越正弦函数acosh(x):反超越馀弦函数反超越馀弦函数atanh(x):反超越正切函数反超越正切函数finverse(f)反函数反函数输出格式输出格式输出格式输出格式任何任何Matlab语句执行结果都可在屏幕上显示,同时赋给指语句执行结果都可在屏幕上显示,同时赋给指定的变量,没有指定变量时赋给定的变量,没有指定变量时赋给ans数字显示格式可由数字显示格式可由format命令来控制(命令来控制(Windows系统下的系统下的Matlab系统的数字系统的数字显示格式可以由显示格式可以由Option菜单中的菜单中的NumericalFormat菜单改菜单改变)变)format仅影响矩阵的显示,不影响矩阵的计算与存仅影响矩阵的显示,不影响矩阵的计算与存贮贮(Matlab以双精度执行所有的运算以双精度执行所有的运算)首先,如果矩阵元素是整数则矩阵显示就没有小数,如首先,如果矩阵元素是整数则矩阵显示就没有小数,如x=-101,结果为:,结果为:x=-101如果矩阵元素不是整数则输出形式有:(用命令:如果矩阵元素不是整数则输出形式有:(用命令:formatformat格式进行切换)格式进行切换)格式格式中文解释中文解释说明说明format短格式短格式(缺省格式)(缺省格式)Default.SameasSHORTformatshort短格式短格式(缺省格式)(缺省格式)Scaledfixedpointformatwith5digits(只显示五位十进制数)formatlong长格式长格式Scaledfixedpointformatwith15digitsformatshorte短格式短格式e方式方式Floatingpointformatwith5digitsformatlonge长格式长格式e方式方式Floatingpointformatwith15digitsformatshortg短格式短格式g g方式方式Bestoffixedorfloatingpointformatwith5digitsformatlongg长格式长格式g g方式方式Bestoffixedorfloatingpointformatwith15digitsformathex16进制格式进制格式Hexadecimalformatformatbank银行格式银行格式Fixedformatfordollarsandcentsformatrat有理数格式有理数格式Approximationbyratioofsmallintegersformatcompact压缩格式压缩格式Suppressextraline-feedsformatloose自由格式自由格式Putstheextraline-feedsbackinMATLAB中关系和逻辑运算中关系和逻辑运算1 1关系运算符关系运算符 小于小于,大于大于,=大于大于等于等于,=等于,等于,=不等于不等于运算法则:运算法则:如果两个比较量a、b是标量,那么,当a、b之间的关系成立时输出值为1;否则输出值为0.如果两个比较量a、b是相同维数的数组,那么就按标量的运算法则,对a、b的对应元素进行运算,最后的输出结果为一个与a(或b)同维的01数组.如果a是标量,b是数组,那么按标量的运算法则将a与b的每个元素逐一比较,最后的输出结果为一个与b同维的01数组.在算术运算、关系运算中,算术运算优先.2 2逻辑运算符逻辑运算符&与与|或或 非非运算法则:参与逻辑运算的量称为逻辑量运算法则:参与逻辑运算的量称为逻辑量,非零逻辑量为非零逻辑量为“真真”,用用1 1表示;零逻辑量为表示;零逻辑量为“假假”,用用0 0表示表示.如果参与逻辑运算的两个量如果参与逻辑运算的两个量a a、b b都是标量都是标量,那么:那么:a&b当当a a与与b b全为非零时全为非零时,运算结果为运算结果为“1”1”;否则为;否则为“0”0”a|baa|ba与与b b中只要有一个非零中只要有一个非零,运算结果为运算结果为“1”1”aa当当a a是零时是零时,运算结果为运算结果为“1”1”;否则为;否则为“0”0”如果参与逻辑运算的两个量如果参与逻辑运算的两个量a a、b b是相同维数的数组是相同维数的数组,那么就按标量的那么就按标量的运算法则运算法则,对对a a、b b的对应元素进行运算的对应元素进行运算,最后的输出结果为一个与最后的输出结果为一个与a a(或(或b b)同维的)同维的0101数组数组.如果参与逻辑运算的如果参与逻辑运算的a a是标量、是标量、b b是数组是数组,那么就按标量的运算法则那么就按标量的运算法则,将将a a与与b b的每个元素进行运算的每个元素进行运算,最后的输出结果为一个与最后的输出结果为一个与b b同维的同维的0101数组数组.逻辑逻辑“非非”是一个一元运算符是一个一元运算符,也服从数组运算规则也服从数组运算规则.在算术、关系、逻辑运算中在算术、关系、逻辑运算中,算术运算的最优先算术运算的最优先,其次是关系运算其次是关系运算,再再其次是逻辑运算其次是逻辑运算.指令指令含义含义 小于小于大于大于=大于等于大于等于=等于等于=不等于不等于&逻辑逻辑andand|逻辑逻辑ororxor不相同就取不相同就取1 1,否则取,否则取0 0any只要有非只要有非0 0就取就取1 1,否则,否则取取0 0all全为全为1 1取取1 1,否则为,否则为0 0isnan为数为数NaNNaN取取1 1,否则为,否则为0 0isinf为数为数infinf取取1 1,否则为,否则为0 0isfinite有限大小元素取有限大小元素取1 1,否则,否则为为0 0ischar是字符串取是字符串取1 1,否则为,否则为0 0isequal相等取相等取1 1,否则取,否则取0 0ismember两个矩阵是属于关系取两个矩阵是属于关系取1 1,否则取,否则取0 0isempty矩阵为空取矩阵为空取1 1,否则取,否则取0 0isletter是字母取是字母取1 1,否则取,否则取0 0(可以是字符串)(可以是字符串)isstudent学生版取学生版取1 1isprime质数取质数取1 1,否则取,否则取0 0isreal实数取实数取1 1,否则取,否则取0 0isspace空格位置取空格位置取1 1,否则取,否则取0 0关系与逻辑运算关系与逻辑运算MATLAB中各种命令可以完成许多单一的任务,对于某些较命令可以完成许多单一的任务,对于某些较为复杂的问题,仅靠现有的命令或函数来解决,往往是难以为复杂的问题,仅靠现有的命令或函数来解决,往往是难以达到目的达到目的。为此,要运用。为此,要运用MATLAB编程语言编制程序,形成编程语言编制程序,形成M-文件。文件。程序是使计算机完成各项运算的命令集,运行一个编制好的程序是使计算机完成各项运算的命令集,运行一个编制好的程序,计算机会从第一条命令行开始,一行接一行地执行相程序,计算机会从第一条命令行开始,一行接一行地执行相应的命令,直到终止。应的命令,直到终止。程序一般包含:数据输入,数据处理和结果输出三部分,其程序一般包含:数据输入,数据处理和结果输出三部分,其中数据处理是核心。程序编写调试完成后,需要存盘,形成中数据处理是核心。程序编写调试完成后,需要存盘,形成永久性文件,可以随时对它进行调用或修改。文件名以字母永久性文件,可以随时对它进行调用或修改。文件名以字母开头,但不能用专用变量名,如开头,但不能用专用变量名,如pi等。等。MATLAB中每一个命令都是一个命令都是一个M-文件。文件。1.1.3MATLAB编程编程创建创建M M文件文件 创建创建M M文件是文件是MATLABMATLAB中的非常重要的内容中的非常重要的内容.事实事实上上,正是由于在正是由于在MATLABMATLAB工具箱中存放着大量的工具箱中存放着大量的M M文文件件,使得使得MATLABMATLAB在应用起来显得简单、方便在应用起来显得简单、方便,且功能且功能强大强大.如果用户根据自己的需要如果用户根据自己的需要,开发出适用于自己开发出适用于自己的的M M文件文件,不仅能使不仅能使MATLABMATLAB更加贴近用户自己更加贴近用户自己,而且而且能使能使MATLABMATLAB的功能得到扩展的功能得到扩展.M M文件有两种形式:文件有两种形式:命令文件命令文件和和函数文件函数文件当用户当用户要运行的命令较多时要运行的命令较多时,如果直接在命令窗口中逐条如果直接在命令窗口中逐条输入和运行输入和运行,有诸多不便有诸多不便.此时可通过编写命令文件此时可通过编写命令文件来解决这个问题来解决这个问题.另外另外,从前面的许多例子可以看到:从前面的许多例子可以看到:MATLABMATLAB的许多命令的许多命令,需要用户通过编写函数文件来需要用户通过编写函数文件来执行执行.MATLABMATLAB程序文件程序文件文件名必须以英文字母开头,并以.m 为后缀,如f1.m、f2.m、g1.m、g2.m、命令文件的创立命令文件的创立进入进入MATLAB命令窗口后命令窗口后,选择选择“file”下拉式菜单中的下拉式菜单中的“new”进入进入编辑编辑/调试器(调试器(Editer/Debugger),在编辑在编辑/调试器中调试器中,编写符合语法规编写符合语法规则的命令则的命令.编写完命令文件后编写完命令文件后,选择选择“file”下拉式菜单中的下拉式菜单中的“save”项项,然后依提示输入一个文件名然后依提示输入一个文件名.至此至此,完成了命令文件的创建完成了命令文件的创建.函数文件的创立函数文件的创立函数文件的创立方法与命令文件的创立方法完全一样函数文件的创立方法与命令文件的创立方法完全一样,只是函数文件只是函数文件的第一句可执行语句是以的第一句可执行语句是以function引导的定义语句引导的定义语句,并且输入文件名时并且输入文件名时要与定义语句中的函数名相同要与定义语句中的函数名相同.建立了函数文件或命令文件后建立了函数文件或命令文件后,只要在命令窗口键入命令文件名或函只要在命令窗口键入命令文件名或函数名数名,就可执行就可执行M文件中所包含的所有命令文件中所包含的所有命令.命令文件与函数文件举例命令文件与函数文件举例function a,b=myswap(x,y)%swap x and y t=x;a=y b=t例:例:交换两个变量的值交换两个变量的值 myswap.ml有两个输入参数和两个输出参数有两个输入参数和两个输出参数clearclca=3,b=4,X=a;a=b,b=X%交换交换a,b值值函数文件函数文件命令文件命令文件命令文件的创建和运行命令文件的创建和运行:在在MATLABMATLAB的命令窗口点击的命令窗口点击“新建新建”工具栏或在工具栏或在“file”“file”下拉菜单中选下拉菜单中选“New”“New”中的中的“M-file”“M-file”项项,进入编辑进入编辑/调试器调试器.例例计算所有小于计算所有小于1000的的Fibonnaci数数.%计算小于计算小于10001000的的Fibonnaci(斐波那契数列斐波那契数列)数数clearclear clc clcf=1,f=1,2 2;i=1;1;whilewhilef(f(i)+f()+f(i+1)1000+1)1000f(i+2)=f(f(i+2)=f(i)+f(i+1);)+f(i+1);i=i+1;+1;endendf,f,i在在“file”“file”下拉菜单中选下拉菜单中选“Save”“Save”项项,依提示输入文依提示输入文件名件名“fibno”“fibno”至此至此,完成了命令文件完成了命令文件fibno.mfibno.m的创建的创建.function输出形参列表输出形参列表=函数名函数名(输入形参列表输入形参列表)%注释说明部分注释说明部分(可选可选)函数体语句函数体语句(必须必须)l第一行为第一行为引导行引导行,表示该,表示该M文件是函数文件文件是函数文件l函数名的命名规则与变量名相同函数名的命名规则与变量名相同(必须以字母开头必须以字母开头)l当当输出形参输出形参多于一个时,用多于一个时,用方括号方括号括起来括起来l以以百分号百分号开始的语句为开始的语句为注释语句注释语句函数文件创建函数文件创建q函数文件由函数文件由function语句引导语句引导l函数函数文件名必须与函数名一致文件名必须与函数名一致l函数必须是一个函数必须是一个单独的单独的M文件文件functionf=ffibno(n)f=1,1;f=1,1;i=1;1;whilewhilef(f(i)+f()+f(i+1)n+1)nf(i+2)=f(f(i+2)=f(i)+f(i+1);)+f(i+1);i=i+1;+1;endendf在在“file”“file”下拉菜单中选下拉菜单中选“Save”“Save”项项,依提示输入文依提示输入文件名件名“ffibno”fibno”至此至此,完成了函数文件完成了函数文件ffibno.mfibno.m的创建的创建.执行执行ffibno.fibno.在在MATLABMATLAB窗口中输入窗口中输入ffibnofibno(1000)并敲回车键即可并敲回车键即可.例如:一个自编的函数文件例如:一个自编的函数文件mean.m,用于求向量的(或矩阵按列的)平均值,用于求向量的(或矩阵按列的)平均值functiony=mean(x)%MEANAverageormeanvalue,ForVectors,%MEAN(x)returnsthemeanvalue%FormatrixMEAN(x)isarowvector%containingthemeanvalueofeachcolu umnm,n=size(x);ifm=1m=n;endy=sum(x)/m;磁盘文件中定义的新函数称为磁盘文件中定义的新函数称为mean函数,它与函数,它与Matlab函数一样使用,例如函数一样使用,例如z为从为从1到到99的实数向量:的实数向量:z=1:99;计算均值:计算均值:mean(z)ans=50mean.m程序的说明:程序的说明:(1 1)第一行的内容:函数名,输入变量,输出变量,没有这行这个文件就是命令文件,)第一行的内容:函数名,输入变量,输出变量,没有这行这个文件就是命令文件,而不是函数文件而不是函数文件(2 2):表明右边的行是说明性的内容注释前一小部分行来确定):表明右边的行是说明性的内容注释前一小部分行来确定M文件的注释,文件的注释,并在键入并在键入helpmean后显示出来显示内容为连续的若干个右边的文字后显示出来显示内容为连续的若干个右边的文字(3 3)变量)变量m,n和和y是是mean的局部变量,在的局部变量,在mean运行结束后,它们将不在工作空间运行结束后,它们将不在工作空间z z中存中存在如果在调用函数之前有同名变量,先前存在的变量及其当前值将不会改变在如果在调用函数之前有同名变量,先前存在的变量及其当前值将不会改变MATLAB编程编程语句语句1 1控制语句控制语句MATLABMATLAB也有控制流语句也有控制流语句,用于控制程序的流程用于控制程序的流程.主要有主要有forfor循环、循环、whilewhile循环、循环、ifif和和breakbreak三种控制语句三种控制语句.虽然语句很少虽然语句很少,但功能很强但功能很强.forfor循环语句循环语句for循环语句的一般表达形式为:循环语句的一般表达形式为:forforforfori=表达式表达式 可执行语句可执行语句1 1可执行语句n endend作用:重复执行命令集作用:重复执行命令集commands格式:fori=n1:(step):n2 commands;end例:求例:求S=1+2+3+50,S=1+2+3+50,可编程如下可编程如下:s=0;s=0;forfork=1:50k=1:50s=s+k;s=s+k;endendwhilewhile循环循环循环循环whilewhile循环语句用来控制一个或一组语句在某逻辑条件下循环语句用来控制一个或一组语句在某逻辑条件下重复预先确定或不确定的次数重复预先确定或不确定的次数.while循环语句的一般表达形式为:循环语句的一般表达形式为:whilewhilewhilewhile表达式表达式循环体语句循环体语句endendendend例:例:求求S=1+2+3+50,可编程如下:可编程如下:S=0;k k=0;whilek51S=S+k;k=k+1;%当条件当条件k51kepk=k+1;x=exp(-x0);dx=abs(x-x0)/(1+abs(x);x0=x;endifif和和breakbreak语句语句MATLABMATLAB中中ifif和和breakbreak语句的作用与使用方式同其它编程语句的作用与使用方式同其它编程语言一样语言一样,用来将控制流程用来将控制流程进行分流与中断退出进行分流与中断退出.例:可以把上面的解方程的例子中的循环语句改写成例:可以把上面的解方程的例子中的循环语句改写成:x0=0;while(1while(1)k=k+1;
展开阅读全文