资源描述:
《MATLAB编程(课件ppt)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Matlab编程一、Matlab编程二、Matlab编程实例MATLAB的内部函数是有限的,有时为了研究某一个函数的各种性态,需要为MATLAB定义新函数,为此必须编写函数文件.函数文件是文件名后缀为M的文件,这类文件的第一行必须是一特殊字符function开始,格式为:function因变量名=函数名(自变量名)函数值的获得必须通过具体的运算实现,并赋给因变量.一、Matlab编程M文件建立方法:1.在MATLAB中,点:File→New→M-file2.在编辑窗口中输入程序内容3.点File→Save,
2、存盘,M文件名必须与函数名一致.MATLAB的应用程序也以M文件保存.1.for循环:允许一组命令以固定的和预定的次数重复forx=array{commands}end在for和end语句之间的命令串{commands}按数组(array)中的每一列执行一次.在每一次迭代中,x被指定为数组的下一列,即在第n次循环中,x=array(:,n)控制流MATLAB提供三种决策或控制流结构:for循环、while循环、if-else-end结构.这些结构经常包含大量的MATLAB命令,故经常出现在MATLAB程序中
3、,而不是直接加在MATLAB提示符下.例对n=1,2,…,10,求xn=的值.MATLAB(for1)forn=1:10x(n)=sin(n*pi/10);endxMATLAB(for1)while(expression){commands}end只要在表达式(expression)里的所有元素为真,就执行while和end语句之间的命令串{commands}.2.While循环与for循环以固定次数求一组命令相反,while循环以不定的次数求一组语句的值.MATLAB(while1)例设银行年利率为11.
4、25%.将10000元钱存入银行,问多长时间会连本带利翻一番?money=10000years=0whilemoney<20000years=years+1money=money*(1+11.25/100)endMATLAB(while1)3.if-else-end结构(1)有一个选择的一般形式是:if(expression){commands}end如果在表达式(expression)里的所有元素为真,就执行if和end语句之间的命令串{commands}.MATLAB(fun1)MATLAB命令窗口输入
5、fun1(2),fun1(-1)即可.functionf=fun1(x)ifx>1f=x^2+1endifx<=1f=2*xendMATLAB(fun1)2)有三个或更多的选择的一般形式是:if(expression1){commands1}elseif(expression2){commands2}elseif(expression3){commands3}elseif………………………………………else{commands}endendend……end先建立M文件fun2.m来定义函数f(x),再在MA
6、TLAB命令窗口输入fun2(2),fun2(0.5),fun2(-1)即可.MATLAB(fun2)返回functionf=fun2(x)ifx>1f=x^2+1elseifx<=0f=x^3elsef=2*xendendMATLAB(fun2)functionf=fun3(x)f=(x^2+1)*(x>1)+2*x*(x>0&x<=1)+x^3*(x<=0)分段函数可表示为:MATLAB的程序调试方法MatLab在执行程序有错时会自动终止运行,并在其命令窗口(MatlabCommandWindows)中
7、给出相应错误的提示信息同时MATLAB的编辑器(Editor)具有程序调试功能,可用调试命令用来检查程序的正确性17/18单步执行断点间执行终止调试(1)在程序可疑处设置断点;(2)执行程序;(3)检查程序运行至断点处变量当前值(4)在程序中一步步执行(5)结束调试状态。(6)取消断点。执行程序之后,程序会停在断点处。并出现箭头.同时调试工具栏由灰色变为深色18/18调试程序步骤:编缉窗口functionyy=ff(x)yy=sqrt(x.^2+100^2)+sqrt((120-x).^2+120^2);例
8、1分析并计算函数极值点命令窗口fplot('ff',[0,120])gridx=fmin('ff',40,60)holdonplot(x,ff(x),'ro')x=54.5455图形窗口二、Matlab编程实例例2函数的递归调用:阶乘计算functionfac=fact(n)ifn==1
9、n==0;fac=1;returnendfac=n*fact(n-1);fact(11)ans=39916800fact(21