资源描述:
《MATLAB程序设计内容.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第2章MATLAB程序设计2.1M文件2.1.1M文件的建立与打开1.建立新的M文件2.打开已有的M文件2.1.2M文件的分类M文件可以根据调用方式的不同分为两类:命令文件(ScriptFile),又称脚本文件。函数文件(FunctionFile)。(1)命令文件没有输入参数,也不返回输出参数。而函数文件可以带输入参数,也可返回输出参数。(2)命令文件中的变量是全局变量。函数文件中定义的变量为局部变量,当函数文件执行完毕时,这些变量被清除。(3)命令文件可以直接运行,在MATLAB命令窗口输入命令文件的名字,就会顺序执行命令文件中的命令。而函数文件不能直接运行,
2、而要以函数调用的方式来调用它。【例2.1】建立一个M文件,其功能是:用两个实变量R、M生成复变量RM,然后运行该M文件。程序1:建立一个命令文件。建立命令文件setcomp.mclear;R=[1,2,3;4,5,6];M=[11,12,13;14,15,16];RM=R+i*M然后在MATLAB的命令窗口中输入setcomp,将会执行该命令文件,输出为RM=1.0000+11.0000i2.0000+12.0000i3.0000+13.0000i4.0000+14.0000i5.0000+15.0000i6.0000+16.0000i程序2:fsetcomp.
3、m:functionRM=setcomp(R,M)RM=R+i*M;命令clear;a=[1,2,3;4,5,6];b=[11,12,13,14;15,16,17,18];c=fsetcomp(a,b)2.2程序控制结构2.2.1顺序结构顺序结构是指按照程序中语句的排列顺序依次执行。1.数据的输入A=input('输入A矩阵:');在input函数调用时采用's'选项,则允许用户输入一个字符串。xm=input('What''syourname?','s');2.数据的输出disp(输出项)输出项既可以为字符串,也可以为矩阵。A='Hello,World!';d
4、isp(A)【例2.2】求一元二次方程ax2 +bx+c= 0的根。a=input('a=?');b=input('b=?');c=input('c=?');d=b*b-4*a*c;x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);3.程序的暂停pause(延迟秒数)若要强行中止程序的运行使用Ctrl+C组合键。2.2.2选择结构1.if语句if条件语句块1else语句块2end对比C语言:Matlab:n=100;if(n>=90
5、)r='E';endC语言:n=100;if(n>=90){r='E';}对比C语言:Matlab:n=100;if(n>=90)r='E';endC语言:n=100;if(n>=90){r='E';}(2)多分支if语句:if条件1语句块1elseif条件2语句块2……elseif条件n语句块nelse语句块n+1end对比C语言:Matlab:n=100;ifn>=90r='A';d=100;elseifn>=80r='B';elser='E';endC语言:n=100;if(n>=90){r='A';d=100;}elseif(n>=80){r='B';}
6、else{r='E';}对比C语言:Matlab:n=100;ifn>=90r='A';d=100;elseifn>=80r='B';elser='E';endC语言:n=100;if(n>=90){r='A';d=100;}elseif(n>=80){r='B';}else{r='E';}【例2.4】输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应数的平方,若为其他字符则原样输出。c=input('请输入一个字符','s');ifc>='A'&c<='Z'disp(lower(c));elsei
7、fc>='a'&c<='z'disp(upper(c));elseifc>='0'&c<='9'disp(str2num(c)^2);elsedisp(c);end2.switch语句switch表达式case结果表1语句块1case结果表2语句块2……case结果表n语句块notherwise语句块n+1endswitch后面的表达式应为一个标量或一个字符串.【例2.5】将例2.4改用switch语句实现。c=input('请输入一个字符:','s');cc=abs(c);switch(cc)casenum2cell(abs('A'):abs('Z'))dis
8、p(lower(c));