资源描述:
《之四程序设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MATLAB软件使用简介之四程序设计MATLAB提供了一个完善的程序设计语言环境,使我们能方便地编制复杂的程序,完成各种运算。本节先介绍关系、逻辑运算和条件循环语句等编程的重要手段,然后再介绍MATLAB所特有的M—文件。M文件的语法与C语言十分相似,对广大C语言爱好这来说,编写相当容易一、关系和逻辑运算1关系运算MATLAB中的关系运算符为:==等于;<小于;>大于;<=小于等于;>=大于等于;~=不等于。关系运算是比较二个数之间的关系,若指出的关系成立,则得到逻辑值(结果)为1(表示真),否则为0(表示假)如:A=1:5,B=5:-1:1A=12345B=
2、54321C=A>=4,D=A==BC=00011D=00100注:关系运算与数值运算可以结合起来x=(-3:3)/3;x=x+(x==0)*eps;y=sin(x)./xy=0.84150.92760.98161.00000.98160.92760.84152逻辑运算MATLAB中的逻辑运算符为:&与运算;
3、或运算;~非运算。前二个运算有二个运算对象,形如A&B或A
4、B第三个逻辑运算只有一个运算对象。运算规则为:aba&ba
5、b~a011001001011100逻辑运算将任何非零元素视为1(真值),逻辑运算也可以作用于矩阵或数组。a=1:9,b=9-aa=1
6、23456789b=876543210c=~(a>4),d=(a>=3)&(b<6)c=111100000d=000111111MATLAB提供了一些关系和逻辑函数,常见的有all和any,用法:Y=all(x):若x为向量,当所有元素非零时Y=1,否则Y=0;若x为矩阵,all作用与列元素,Y为列向量。Y=any(x):若x为向量,当有一个元素非零时Y=1,否则Y=0;若x为矩阵,any作用与列元素,Y为列向量。a=[1,0,-5,0;-3,0,8,2],b=all(a),c=any(a),d=all(b),e=any(c)a=10-50-3082b=101
7、0c=1011d=0e=1二、条件和循环语句条件和循环语句属于控制语句,MATLAB控制语句有4个:if,while,for,witch,它们都用end结束。1if语句if <关系表达式><语句1>endif语句的最简单用法是:如果关系表达式的值为1,则执行语句1;否则,执行end的后续命令。if语句的另一种用法是:if <关系表达式><语句1>else<语句2>end多个选择时还可以用下列结构:if <关系表达式1><语句1>elseif<关系表达式2><语句2>……elseif<关系表达式n><语句n>else<语句n+1>end如果关系表达式的值为1,则
8、执行语句1;否则(关系表达式值为0),执行语句2,然后再执行end的后续命令。如果关系表达式j(j=1,2,…,n)的值为1,则执行语句j,然后执行end的后续命令;否则跳过,不予执行,直至到执行语句n+1,然后执行end的后续命令。01xy1例如,可以用下列程序得到右图所示的分段函数。x=-2:0.2:2;n=length(x);fori=1:nifx(i)<=0y(i)=0;elseifx(i)<=1y(i)=x(i);elsey(i)=1;endendplot(x,y)2for语句循环语句for的一般形式为:for<循环参数>=<初值>:<步长>:<终值
9、><语句>end步长为1时可以省略。对每个参数,语句都重复执行。注:当作多次循环时,for语句可以嵌套使用,如下列程序可以生成Hilbert矩阵。forI=1:3forj=1:4a(I,j)=1/(I+j-1);endendformatrata=11/21/31/41/21/31/41/51/31/41/51/6for语句的循环参数可以是任意数组或矩阵,循环参数依次取数组元素的值,或按矩阵的列依次取值。3while语句循环语句for的循环判别条件通常是对循环次数的判别。如果不知道循环参数,可用while循环来完成。While语句的判别控制可以是一个逻辑判别语句
10、,因此它的适用范围会更广些。其表达形式为:while<关系表达式><语句>end关系表达式的值为1(真时)时,语句被循环执行,直到关系表达式值为0(假时)时终止。如:n=0;Eps=1;while(1+Eps)>1Eps=Eps/2;n=n+1;endEps=2*Eps;n,formatshorte,Epsn=53Eps=2.2204e-016这个例子给出了计算MATLAB中特殊常数的eps过程(我们用大写Eps以便与eps相区别)。Eps不断地被2除直到(1+Eps)>1为假时终止。这里要注意的是,MATLAB用16位数来表示数据,因此当Eps接近时它会认为
11、(1+Eps)>1不成立。MATLAB