欢迎来到天天文库
浏览记录
ID:36315673
大小:397.00 KB
页数:61页
时间:2019-05-09
《matlab程序设计基础程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MATLAB程序设计基础程序设计M文件两种形式:命令形式(Script)函数形式(Function)命令式M文件在运行过程中可以调用MATLAB工作域内所有的数据,而且,所产生的所有变量均为全局变量,直到用户执行clear命令清除;函数式文件中所有变量除特殊声明,均为局部变量。命令式M文件提示:标点符号要运用恰当;注意程序的书写风格,保持程序的可读性;要以m为文件扩展名,在低版本的matlab中,文件名要符合8.3格式。函数式M文件function[返回变量列表]=函数名(输入变量列表)注释说明语句段函数体提示:第一行为function语句;function后定
2、义函数名和输入输出参数,函数被调用时按此格式执行;文件名必须与函数名一一对应;函数执行完后,只保留返回结果,不保留中间过程;例:functionf=fibfun(n)%FIBFUNforcalculatingfibonaccinumbers.%Incidengtally,thenamefibonaccicomesfrom%FiliusBonassi,or"sonofBonassus"%fibfun.mifn>2f=fibfun(n-1)+fibfun(n-2);elsef=1;end?helpfibfunFIBFUNforcalculatingfibonacci
3、numbers.Incidengtally,thenamefibonaccicomesfromFiliusBonassi,or"sonofBonassus"fibfun.m?lookforfibFIBFUNforcalculatingfibonaccinumbers.注:为了利用MATLAB的关键字搜索功能,应该在M文件的第一行注释中,尽可能多的包含函数的特征信息。控制语句循环语句有两种方式:for循环和while循环for循环for循环变量=s1:s3:s2循环体语句组end说明:for语句一定要有end结束标志;循环语句中要用“;”防止中间结果的输出;书写时
4、采用锯齿结构以增加可读性;例:求mysum=0;fori=1:1:100mysum=mysum+i;end;mysum求取s1的值->ii在s1和s2之间?循环体语句组i+s3->i是否结束循环for循环的一般形式forv=vectstatementsendvect为任意给定的向量,则循环变量从向量的第一个数值一直循环到最后一个数值。例1(见前例):mysum=0;v=1:100;fori=v;mysum=mysum+i;endmysum例2:x=[];fori='Hello',x=[ix];end,xwhile循环while逻辑变量循环体语句组end例(见前例
5、):mysum=0;i=1;while(i<=100)mysum=mysum+i;i=i+1;endmysum条件为真?循环体语句是否结束循环条件转移结构if逻辑变量条件语句组end例:mysum=0;form=1:1000if(mysum>10000),break;endmysum=mysum+m;end[m,mysum]if条件式条件块语句组1else条件块语句组2end条件语句组语句组1语句组2是否例:多项式加p1=[154];p2=[16116];n1=length(p1);n2=length(p2);ifn16、p1];elsep2=[zeros(1,n1-n2)p2];endpsum=p1+p2psum=171610if条件式1条件块语句组1elseif条件式2条件块语句组2…else条件块语句组n+1end条件1语句组1条件2是语句组2是否条件n语句组n语句组n+1否否是分支语句switch开关表达式case表达式1语句段1case{表达式2,表达式3,…,表达式m}语句段2…otherwise语句段nend注意:无需像C语言那样在下一个case语句前加break语句;当需要在开关表达式满足若干个表达式之一时,用单元结构来表示;otherwise等价于C语言的def7、ault语句;程序的执行结果与case语句的次序无关。试探式语句try语句段1catch语句段2end首先试探性的执行语句段1,如果在执行过程中出现错误,则将错误信息赋给lasterr变量,并放弃该段语句,转而执行语句段2中的语句。functionc=testtry(a,b)tryc=a+b;catchc=strcat(a,b);end人机交互语句echo语句echoon打开命令式文件的回应命令;echooff关闭回应命令;echofileon使file文件的命令在执行中被显示;echofileoff关闭file文件的命令执行中的回应;echoonall显示所有8、执行文件的执行过程;ec
6、p1];elsep2=[zeros(1,n1-n2)p2];endpsum=p1+p2psum=171610if条件式1条件块语句组1elseif条件式2条件块语句组2…else条件块语句组n+1end条件1语句组1条件2是语句组2是否条件n语句组n语句组n+1否否是分支语句switch开关表达式case表达式1语句段1case{表达式2,表达式3,…,表达式m}语句段2…otherwise语句段nend注意:无需像C语言那样在下一个case语句前加break语句;当需要在开关表达式满足若干个表达式之一时,用单元结构来表示;otherwise等价于C语言的def
7、ault语句;程序的执行结果与case语句的次序无关。试探式语句try语句段1catch语句段2end首先试探性的执行语句段1,如果在执行过程中出现错误,则将错误信息赋给lasterr变量,并放弃该段语句,转而执行语句段2中的语句。functionc=testtry(a,b)tryc=a+b;catchc=strcat(a,b);end人机交互语句echo语句echoon打开命令式文件的回应命令;echooff关闭回应命令;echofileon使file文件的命令在执行中被显示;echofileoff关闭file文件的命令执行中的回应;echoonall显示所有
8、执行文件的执行过程;ec
此文档下载收益归作者所有