收藏 分销(赏)

MATLAB语言及应用-第二章.ppt

上传人:仙人****88 文档编号:14753110 上传时间:2026-11-13 格式:PPT 页数:83 大小:647KB 下载积分:10 金币
下载 相关
MATLAB语言及应用-第二章.ppt_第1页
第1页 / 共83页
MATLAB语言及应用-第二章.ppt_第2页
第2页 / 共83页


点击查看更多>>
资源描述
,第二级,第三级,第四级,第五级,第,2,章,基本语法,变量及其赋值,矩阵的初等运算,元素群运算,逻辑判断及流程控制,基本绘图方法,M,文件及程序调试,变量及其赋值,矩阵的初等运算,元素群运算,逻辑判断及流程控制,基本绘图方法,M,文件及程序调试,第,2,章 基本语法,第,2,章 基本语法,变量及其赋值,标识符与数,矩阵及其元素的赋值,复数,变量检查,基本赋值矩阵,第,2,章 基本语法,标识符与数,标识符是标识变量名、常量名、函数名和文件名的字符串的总称。,在,MATLAB,中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多,19,个字符;函数和文件名则通常不超过,8,个字符。,在,MATLAB,中,变量名区分字母的大小写。,MATLAB,提供的标准函数名以及命令名必须用小写字母。,第,2,章 基本语法,矩阵及其元素的赋值,MATLAB,赋值语句有两种格式:,(1),标准赋值格式:变量,=,表达式(或数),(2),不要等式左端而只剩下“表达式”,一般地,运算结果在命令窗口中显示出来。如果在语句的最后加分号,那么,,MATLAB,仅仅执行赋值操作,不再显示运算的结果。,在,MATLAB,语句后面可以加上注释,注释以,%,开头,后面是注释的内容。,第,2,章 基本语法,例,2.1,计算表达式的值,并将结果赋给变量,x,,然后显示出结果。,在,MATLAB,命令窗口输入命令:,x=(5+cos(47*pi/180)/(1+sqrt(7)-2*i)%,计算表达式的值,第,2,章 基本语法,复数,MATLAB,的每一个元素都可以是复数,实数是复数的特例。对复数矩阵有两种赋值方法:,(1),将其元素逐个赋与复数,如,键入,z=1+2i,3+4i,5+6i,7+8i,(2),将其实部和虚部分别赋值,如,键入,z=1,3;5,7+2,4;6,8*i,第,2,章 基本语法,变量检查,1,预定义变量,在,MATLAB,工作空间中,还驻留几个由系统本身定义的变量。它们有特定的含义,在使用时,应尽量避免对这些变量重新赋值。,2,内存变量的管理,(,1,)内存变量的显示与删除,who,和,whos,这两个命令用于显示在,MATLAB,工作空间中已经驻留的变量名清单。,clear,命令用于删除,MATLAB,工作空间中的变量。,注意,预定义变量不能被删除。,第,2,章 基本语法,(,2,)内存变量文件,利用,MAT,文件,(.mat),可以把当前,MATLAB,工作空间中的一些有用变量长久地保留下来。,MAT,文件的生成和装入由,save,和,load,命令来完成。常用格式为:,save,文件名,变量名表,load,文件名,变量名表,第,2,章 基本语法,基本赋值矩阵,一 矩阵的建立,1.,直接输入法,将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。例如,A=1 2 3;4 5 6;7 8 9,2.,利用,M,文件建立矩阵,对于比较大且比较复杂的矩阵,可以为它专门建立一个,M,文件。,第,2,章 基本语法,3.,利用,MATLAB,函数建立矩阵,几个产生特殊矩阵的函数:,zeros,、,ones,、,eye,、,rand,(随机数)、,randn,(正态随机数)。,这几个函数的调用格式相似,下面以产生零矩阵的,zeros,函数为例进行说明。其调用格式是:,zeros(m,),产生,mm,零矩阵,zeros(m,n,),产生,mn,零矩阵。,zeros(size(A,),产生与矩阵,A,同样大小的零矩阵,相关的函数有:,length(A,),给出行数和列数中的较大者,即,length(A,)=,max(size(A,),;,ndims(A,),给出,A,的维数。,第,2,章 基本语法,例,2.3,分别建立,33,、,32,和与矩阵,A,同样大小的零矩阵。,(1),建立一个,33,零矩阵:,zeros(3),(2),建立一个,32,零矩阵:,zeros(3,2),(3),建立与矩阵,A,同样大小零矩阵:,zeros(size(A,),4.,建立大矩阵,大矩阵可由方括号中的小矩阵建立起来。例如,A=1 2 3;4 5 6;7 8 9;,C=,A,eye(size(A,);,ones(size(A),A,第,2,章 基本语法,二 冒号表达式,冒号表达式的一般格式:,e1:e2:e3,三 矩阵的拆分,1.,矩阵元素,MATLAB,允许用户对一个矩阵的单个元素进行赋值和操作。例如,A(3,2)=200,也可以采用矩阵元素的序号来引用矩阵元素。矩阵元素按列编号,先第一列,再第二列,依次类推。,第,2,章 基本语法,2.,矩阵拆分,(1),利用冒号表达式获得子矩阵,A(:,j,),表示取,A,矩阵的第,j,列全部元素;,A(i,:),表示,A,矩阵第,i,行的全部元素;,A(i,j,),表示取,A,矩阵第,i,行、第,j,列的元素。,A(i:i+m,:),表示取,A,矩阵第,i,i+m,行的全部元素;,A(:,k:k+m,),表示取,A,矩阵第,k,k+m,列的全部元素,,A(i:i+m,k:k+m,),表示取,A,矩阵第,i,i+m,行内,并在第,k,k+m,列中的所有元素。,此外,还可利用一般向量和,end,运算符等来表示矩阵下标,从而获得子矩阵。,end,表示某一维的末尾元素下标。,第,2,章 基本语法,(2),利用空矩阵删除矩阵的元素,在,MATLAB,中,定义,为空矩阵。给变量,X,赋空矩阵的语句为,X=,。,注意,,X=,与,clear X,不同,,clear,是将,X,从工作空间中删除,而空矩阵则存在于工作空间,只是维数为,0,。,将某些元素从矩阵中删除,采用将其置为空矩阵的方法就是一种有效的方法。,第,2,章 基本语法,四 多维矩阵,以三维矩阵为例,常用的方法有,4,种:,(1),对二维矩阵进行扩充得到三维矩阵。,(2),若干个同样大小的二维矩阵进行组合得到三维矩阵。,(3),除产生单位矩阵的,eye,函数外,前面介绍的建立矩阵的函数都可以延伸到三维矩阵。,(4),用,cat,函数构建多维矩阵。一般调用格式是:,cat(n,A1,A2,An),cat,函数把大小相同的若干矩阵,沿第,n,维方向串接成高维矩阵。当,n=1,和,2,时,沿行和列的方向串接,结果是二维矩阵。当,n=3,时,沿列的方向串接,结果是三维矩阵。,变量及其赋值,矩阵的初等运算,元素群运算,逻辑判断及流程控制,基本绘图方法,M,文件及程序调试,第,2,章 基本语法,第,2,章 基本语法,矩阵的初等运算,1.,基本算术运算,MATLAB,的基本算术运算有:,(,加,),、,(,减,),、*,(,乘,),、,/(,右除,),、,(,左除,),、,(,乘方,),。,注意,:,运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。,2.,点运算,点运算符有,.*,、,./,、,.,和,.,。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。,3,MATLAB,常用数学函数,变量及其赋值,矩阵的初等运算,元素群运算,逻辑判断及流程控制,基本绘图方法,M,文件及程序调试,第,2,章 基本语法,第,2,章 基本语法,元素群运算,1.,数组及其赋值,MATLAB,提供了两种为等间隔数组赋值的简易方法,(1),用两个冒号组成等增量语句,其格式为:,t=,初值:增值:终值,(2),用,linspace,函数。其格式为:,linspace,(,初值、终值、点数),2.,四则运算和幂次运算,矩阵中的所有元素按单个元素运算。,3.,元素群函数,变量及其赋值,矩阵的初等运算,元素群运算,逻辑判断及流程控制,基本绘图方法,M,文件及程序调试,第,2,章 基本语法,第,2,章 基本语法,一 关系运算,MATLAB,提供了,6,种关系运算符:,(,小于,),、,(,大于,),、,=(,大于或等于,),、,=(,等于,),、,=(,不等于,),。,关系运算符的运算法则。,二 逻辑运算,MATLAB,提供了,3,种逻辑运算符:,&(,与,),、,|(,或,),和,(,非,),。,运算法则。,三 流程控制语句,第,2,章 基本语法,1 if,语句,在,MATLAB,中,,if,语句有,3,种格式。,(,1,)单分支,if,语句,语句格式为:,if,条件,语句组,end,当条件成立时,则执行语句组,执行完之后继续执行,if,语句的后继语句,若条件不成立,则直接执行,if,语句的后继语句。,第,2,章 基本语法,例,2.7,计算分段函数值。,程序如下:,x=input(,请输入,x,的值,:);,if x=10,y=cos(x+1)+sqrt(x*x+1);,else,y=x*,sqrt(x+sqrt(x,);,end,y,第,2,章 基本语法,(,3,)多分支,if,语句,语句格式为:,if,条件,1,语句组,1,elseif,条件,2,语句组,2,elseif,条件,m,语句组,m,else,语句组,m+1,end,第,2,章 基本语法,例,2.8,输入一个字符,若为大写字母,则输出其后继字符,若为小写字母,则输出其前导字符,若为数字字符则输出其对应的数值,若为其他字符则原样输出。程序如下:,c=input(,请输入一个字符,s);,if c=A&c=a&c=0&c,eps,s=,s+h,;,h=h/2;,s=,s+h,;,n=n+1;,end,disp,(,经过的总路程,),disp(s,),disp,(,弹起次数,),disp(n,),disp,(,弹起高度,),disp(h,),第,2,章 基本语法,3 for,语句,语句格式为:,for,循环变量,=,表达式,1:,表达式,2:,表达式,3,循环体语句,end,首先计算三个表达式的值,再将表达式,1,的值赋给循环变量,如果此时循环变量的值介于表达式,1,和表达式,3,的值之间,则执行循环体语句,否则结束循环的执行。执行完一次循环之后,循环变量自增一个表达式,2,的值,然后再判断循环变量的值是否介于表达式,1,和表达式,3,之间,如果满足仍然执行循环体,直至不满足为止。这时将结束,for,语句的执行,而继续执行,for,语句后面的语句。,第,2,章 基本语法,for,语句更一般的格式:,for,循环变量,=,矩阵表达式,循环体语句,end,执行过程是依次将矩阵的各列元素赋给循环变量,然后执行循环体语句,直至各列元素处理完毕。实际上,“表达式,1:,表达式,2:,表达式,3”,是一个仅为一行的矩阵,(,行向量,),,因而列向量是单个数据。,例,2.6,求,1,到,200,之间所有奇数之和,写出程序和运行结果。,第,2,章 基本语法,程序如下:,(1)i=1;,s=0;,while(i,score80,分,良;,(,3,),80score70,分,中;(,4,),70score60,分,及格;,(,5,),60score,,不及格;,第,2,章 基本语法,程序如下:,score=input(,请输入卷面成绩:,score=);,switch fix(score/10),case 9,grade=,优,case 8,grade=,良,case 7,grade=,中,case 6,grade=,及格,otherwise,grade=,不及格,end,第,2,章 基本语法,5 try,语句,语句格式为:,try,语句组,1,catch,语句组,2,end,try,语句先试探性执行语句组,1,,如果语句组,1,在执行过程中出现错误,则将错误信息赋给保留的,lasterr,变量,并转去执行语句组,2,。这种试探性执行语句是其他高级语言所没有的。,第,2,章 基本语法,例,2.10,矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。,程序如下:,A=1,2,3;4,5,6;B=7,8,9;10,11,12;,try,C=A*B;,catch,C=A.*B;,end,C,lasterr,%,显示出错原因,第,2,章 基本语法,例,2.11,已知某图像文件名为,kids,,但不知其存储格式为,.bmp,还是,.,tif,,试编程,正确读取该图像文件并显示图像。,程序如下:,try,picture=,imread(kids.bmp,);,catch,picture=,imread(kids.tif,);,end,imshow(picture,),lasterr,%,显示出错原因,变量及其赋值,矩阵的初等运算,元素群运算,逻辑判断及流程控制,基本绘图方法,M,文件及程序调试,第,2,章 基本语法,第,2,章 基本语法,基本绘图方法,1,直角坐标中的二维曲线,2,线型、点型和颜色,3,多条曲线的绘制,4,屏幕控制和其他二维绘图,5,三维曲线和曲面,6,彩色、光照和图像,第,2,章 基本语法,1,直角坐标中的二维曲线,绘制二维曲线的最基本函数,:,plot,函数的基本用法,plot,函数的基本调用格式为:,plot(x,y,),其中,x,和,y,为长度相同的向量,分别用于存储,x,坐标和,y,坐标数据。,例,1,在,0X2,区间内,绘制曲线,y=sin(2x),。,程序如下:,x=0:pi/100:2*pi;,y=sin(2*pi*x);,plot(x,y,+r,),第,2,章 基本语法,说明:,(,1,)当,x,y,是同维矩阵时,则以,x,y,对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。,(,2,)当,x,是向量,,y,是有一维与,x,同维的矩阵时,则绘制出多根不同色彩的曲线。曲线条数等于,y,矩阵的另一维数,,x,被作为这些曲线共同的横坐标。,(,3,),plot,函数最简单的调用格式是只包含一个输入参数:,plot(x,),。,第,2,章 基本语法,例,2,某工厂,2000,年各月总产值(单位:万元)分别为,22,、,60,、,88,、,95,、,56,、,23,、,9,、,10,、,14,、,81,、,56,、,23,,试绘制折线图以显示出该厂总产值的变化情况。,程序如下:,p=22,60,88,95,56,23,9,10,14,81,56,23;,plot(p,),第,2,章 基本语法,2,线型、点型和颜色,MATLAB,会自动设定所画曲线的颜色和线型。如果用户对默认值不满意,可以用命令控制线型。也可以根据需要选取不同的数据点的标记。,3,多条曲线的绘制,(,1,)用,plot(t,y1,y2,),命令,t,是向量,,y=y1,y2,是矩阵,若,t,是列(行)向量,则,y,的列(行)长与,t,长度相同。,y,的行(列)数就是曲线的根数。,(,2,)用,hold,命令,在画完前一张图后用,hold,命令保持住,在画下一条曲线。,第,2,章 基本语法,(,3,)含多个输入参数的,plot,函数,含多个输入参数的,plot,函数调用格式为:,plot(x1,y1,x2,y2,xn,yn,),(,4,)双纵坐标函数,plotyy,plotyy,函数是,MATLAB 5.X,新增的函数。它能把函数值具有不同量纲、不同数量级的两个函数绘制在同一坐标中。调用格式为:,plotyy(x1,y1,x2,y2),其中,x1y1,对应一条曲线,,x2y2,对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于,x1y1,数据对,右纵坐标用于,x2y2,数据对。,第,2,章 基本语法,例,3,用不同标度在同一坐标内绘制曲线,y1=e,-0.5x,sin(2x),及曲线,y2=1.5e,-0.1x,sin(x),。,程序如下:,x1=0:pi/100:2*pi;,x2=0:pi/100:3*pi;,y1=exp(-0.5*x1).*sin(2*pi*x1);,y2=1.5*exp(-0.1*x2).*sin(x2);,plotyy(x1,y1,x2,y2);,第,2,章 基本语法,4,屏幕控制和其他二维绘图,(,1,)图形标注,有关图形标注函数的调用格式为:,title(,图形名称,),xlabel(x,轴说明,),ylabel(y,轴说明,),text(x,y,图形说明,),legend(,图例,1,图例,2,),第,2,章 基本语法,例,4,给图形添加图形标注。,程序如下:,x=(0:pi/100:2*pi);,y1=2*exp(-0.5*x)*1,-1;,y2=2*exp(-0.5*x).*sin(2*pi*x);,x1=(0:12)/2;,y3=2*exp(-0.5*x1).*sin(2*pi*x1);,plot(x,y1,g:,x,y2,b-,x1,y3,rp,);,title(,曲线及其包络线,);%,加图形标题,xlabel(independent,variable X);%,加,X,轴说明,ylabel(independent,variable Y);%,加,Y,轴说明,text(2.8,0.5,包络线,);%,在指定位置添加图形说明,text(0.5,0.5,曲线,y);,text(1.4,0.1,离散数据点,);,legend(,包络线,包络线,曲线,y,离散数据点,)%,加图例,第,2,章 基本语法,(,2,)坐标控制,函数的调用格式为:,axis(xmin,xmax,ymin,ymax,zmin,zmax,),axis,函数功能丰富,常用的用法还有:,axis equal,纵、横坐标轴采用等长刻度,axis square,产生正方形坐标系,(,缺省为矩形,),axis auto,使用缺省设置,axis off,取消坐标轴,axis on,显示坐标轴,grid on/off,命令控制是画还是不画网格线,不带参数的,grid,命令在两种状态之间进行切换。,box on/off,命令控制是加还是不加边框线,不带参数的,box,命令在两种状态之间进行切换。,第,2,章 基本语法,例,5,用图形保持功能在同一坐标内绘制曲线,y=2e,-0.5x,sin(2x),及其包络线,并加网格线。,程序如下:,x=(0:pi/100:2*pi);,y1=2*exp(-0.5*x)*1,-1;y2=2*exp(-0.5*x).*sin(2*pi*x);,plot(x,y1,b:);,axis(0,2*pi,-2,2);%,设置坐标,hold on;%,设置图形保持状态,plot(x,y2,k);,grid on;%,加网格线,box off;%,不加坐标边框,hold off;%,关闭图形保持,第,2,章 基本语法,(,3,)图形窗口的分割,subplot,函数的调用格式为:,subplot(m,n,p,),或者,subplot,(,position,left bottom width height,),第,2,章 基本语法,x=linspace(0,2*pi,60);,y=,sin(x);z,=,cos(x,);,t=,sin(x)./(cos(x)+eps,);ct=,cos(x)./(sin(x)+eps,);,subplot(2,2,1);%,选择,22,个区中的,1,号区,stairs(x,y);title(sin(x)-1);axis(0,2*pi,-1,1);,subplot(2,1,2);%,选择,21,个区中的,2,号区,stem(x,y);title(sin(x)-2);axis(0,2*pi,-1,1);,subplot(4,4,3);%,选择,44,个区中的,3,号区,plot(x,y);title(sin(x);axis,(0,2*pi,-1,1);,subplot(4,4,4);%,选择,44,个区中的,4,号区,plot(x,z);title(cos(x);axis,(0,2*pi,-1,1);,subplot(4,4,7);%,选择,44,个区中的,7,号区,plot(x,t);title(tangent(x);axis,(0,2*pi,-40,40);,subplot(4,4,8);%,选择,44,个区中的,8,号区,plot(x,ct);title(cotangent(x);axis,(0,2*pi,-40,40);,第,2,章 基本语法,(,4,)其他形式的线性直角坐标图,在线性直角坐标系中,其他形式的图形有条形图、阶梯图、杆图和填充图等,所采用的函数分别是:,bar(x,y,选项,),stairs(x,y,选项,),stem(x,y,选项,),fill(x1,y1,选项,1,x2,y2,选项,2,),第,2,章 基本语法,MATLAB,提供的绘图函数还有很多,例如,用来表示各元素占总和的百分比的饼图、复数的相量图等等。,例,7,绘制图形:,(1),某次考试优秀、良好、中等、及格、不及格的人数分别为:,7,17,23,19,5,,试用饼图作成绩统计分析。,(2),绘制复数的相量图:,3+2i,、,4.5-i,和,-1.5+5i,。,程序如下:,subplot(1,2,1);,pie(7,17,23,19,5);,title(,饼图,);legend(,优秀,良好,中等,及格,不及格,);,subplot(1,2,2);,compass(3+2i,4.5-i,-1.5+5i);title(,相量图,);,第,2,章 基本语法,5,三维曲线和曲面,最基本函数,plot3,函数与,plot,函数用法十分相似,其调用格式为:,plot3(x1,y1,z1,选项,1,x2,y2,z2,选项,2,xn,yn,zn,选项,n),例,7,绘制空间曲线。,t=0:pi/50:2*pi;,x=8*,cos(t);y,=4*sqrt(2)*,sin(t);z,=-4*sqrt(2)*,sin(t,);,plot3(x,y,z,p);,title(Line,in 3-D Space);text(0,0,0,origin);,xlabel(X),ylabel(Y),zlabel(Z);grid,;,第,2,章 基本语法,例,8,分析由函数,z=x,2,-2y,2,构成的曲面形状及与平面,z=a,的交线。,程序如下:,x,y,=meshgrid(-10:0.2:10);,z1=(x.2-2*y.2)+eps;%,第,1,个曲面,a=,input(a,=?);z2=a*,ones(size(x,);%,第,2,个曲面,subplot(1,2,1);mesh(x,y,z1);hold on;mesh(x,y,z2);%,分别画出两个曲面,v=-10,10,-10,10,-100,100;axis(v);grid;%,第,1,子图的坐标设置,hold off;,r0=abs(z1-z2)=1;%,求两曲面,z,坐标差小于,1,的点,xx=r0.*x;,yy,=r0.*y;,zz,=r0.*z2;%,求这些点上的,x,y,z,坐标,即交线坐标,subplot(1,2,2);,plot3(xx(r0=0),yy(r0=0),zz(r0=0),*);%,在第,2,子图画出交线,axis(v);grid,;%,第,2,子图的坐标设置,第,2,章 基本语法,其他三维图形,条形图、饼图和填充图等特殊图形,它们还可以以三维形式出现,使用的函数分别是,bar3,、,pie3,和,fill3,。此外,还有三维曲面的等高线图。等高线图分二维和三维两种形式,分别使用函数,contour,和,contour3,绘制。,例,9,绘制多峰函数的等高线图。,程序如下:,x,y,z,=peaks;,contour3,(,x,y,z,12,k);%,其中,12,代表高度的等级数,xlabel(x-axis),ylabel(y-axis),zlabel(z-axis,);,title(contour3 of peaks);,第,2,章 基本语法,6,彩色、光照和图像,MATLAB,提供了设置视点的函数,view,。其调用格式为:,view(az,el,),其中,az,为方位角,,el,为仰角,它们均以度为单位。系统缺省的视点定义为方位角,-37.5,仰角,30,。,第,2,章 基本语法,例,10,从不同视点绘制多峰函数曲面。,程序如下:,subplot(2,2,1);mesh(peaks);,view(-37.5,30);%,指定子图,1,的视点,title(azimuth,=-37.5,elevation=30),subplot(2,2,2);mesh(peaks);,view(0,90);%,指定子图,2,的视点,title(azimuth,=0,elevation=90),subplot(2,2,3);mesh(peaks);,view(90,0);%,指定子图,3,的视点,title(azimuth,=90,elevation=0),subplot(2,2,4);mesh(peaks);,view(-7,-10);%,指定子图,4,的视点,title(azimuth,=-7,elevation=-10),第,2,章 基本语法,色彩处理,1.,颜色的向量表示,MATLAB,除用字符表示颜色外,还可以用含有,3,个元素的向量表示颜色。,2.,色图,色图是,m3,的数值矩阵,它的每一行是,RGB,三元组。色图矩阵可以人为地生成,也可以调用,MATLAB,提供的函数来定义色图矩阵。,除,plot,及其派生函数外,,mesh,、,surf,等函数均使用色图着色。图形窗口色图的设置和改变,使用函数:,colormap(m,),其中,m,代表色图矩阵。,3.,三维表面图形的着色,三维表面图实际上就是在网格图的每一个网格片上涂上颜色。,surf,函数用缺省的着色方式对网格片着色。除此之外,还可以用,shading,命令来改变着色方式。,第,2,章 基本语法,例,11,、,3,种图形着色方式的效果展示。,程序如下:,z=peaks(20);colormap(copper);,subplot(1,3,1);surf(z);,subplot(1,3,2);,surf(z);shading,flat;,subplot(1,3,3);surf(z);shading,interp,;,第,2,章 基本语法,光照处理,MATLAB,提供了灯光设置的函数,其调用格式为:,light(Color,选项,1,Style,选项,2,Position,选项,3),例,12,光照处理后的多峰函数曲面。,程序如下:,z=peaks(20);,subplot(1,2,1);surf(z);,light(Posi,0,20,10);shading,interp;hold,on;,plot3(0,20,10,p);text(0,20,10,light);,subplot(1,2,2);surf(z);,light(Posi,20,0,10);shading,interp;hold,on;,plot3(20,0,10,p);text(20,0,10,light);,第,2,章 基本语法,图像与动画,图像,1.,imread,和,imwrite,函数,imread,和,imwrite,函数分别用于将图像文件读入,MATLAB,工作空间,以及将图像数据和色图数据一起写入一定格式的图像文件。,2.image,和,imagesc,函数,这两个函数用于图像显示。为了保证图像的显示效果,一般还应使用,colormap,函数设置图像色图。,第,2,章 基本语法,例,13,播放一个直径不断变化的球体。,程序如下,x,y,z,=sphere(50);,m=moviein(30);%,建立一个,30,列大矩阵,for i=1:30,surf(i,*,x,i,*,y,i,*z)%,绘制球面,m(:,i,)=,getframe,;%,将球面保存到,m,矩阵,end,movie(m,10);%,以每秒,10,幅的速度播放球面,变量及其赋值,矩阵的初等运算,元素群运算,逻辑判断及流程控制,基本绘图方法,M,文件及程序调试,第,2,章 基本语法,第,2,章 基本语法,M,文件的分类,分类:程序文件,(Script File),和函数文件,(Function File),。主要区别。,1,主程序文件,建立新的,M,文件,(1),菜单操作:,MATLAB,命令窗口的,File,菜单,New,菜单项,M-file,命令。,(2),命令操作:在,MATLAB,命令窗口输入命令,edit,。,(3),命令按钮操作:单击,MATLAB,命令窗口工具栏上的“新建”命令按钮。,第,2,章 基本语法,例,1,建立一个程序文件将变量,a,b,的值互换,然后运行该程序文件。,首先建立程序文件并以文件名,exch.m,存盘:,clear;,a=1:10;b=11,12,13,14;15,16,17,18;,c=,a;a,=,b;b,=c;,a,b,然后在,MATLAB,的命令窗口中输入,exch,,将会执行该命令文件。,第,2,章 基本语法,例,2,绘制花瓣图形,在程序窗口编写以下语句,并以,huaban.m,为名存入相应的子目录,theta=-pi:0.01:pi;,rho(1,:)=2*sin(5*theta).2;,polar(theta,rho(1,:),第,2,章 基本语法,2,函数文件,函数文件的基本结构,函数文件由,function,语句引导,其基本结构为:,function,输出形参表,=,函数名,(,输入形参表,),注释说明部分,函数体语句,第,2,章 基本语法,说明:,(1),关于函数文件名,:,函数文件名与函数名也可以不相同。当两者不同时,,MATLAB,将忽略函数名而确认函数文件名,因此调用时使用函数文件名。,(2),关于,return,语句。执行到该语句就结束函数的执行,程序流程转至调用该函数的位置。通常,在函数文件中也可不使用,return,语句,这时在被调函数执行完成后自动返回。,第,2,章 基本语法,函数调用,函数调用的一般格式是:,输出实参表,=,函数名,(,输入实参表,),第,2,章 基本语法,例,3,建立一个函数文件将变量,a,b,的值互换,然后在命令窗口调用该函数文件。,首先建立函数文件,fexch.m,:,function,a,b,=,fexch(a,b,),c=,a;a,=,b;b,=c;,然后在,MATLAB,的命令窗口调用该函数文件:,clear;,x=1:10;y=11,12,13,14;15,16,17,18;,x,y,=,fexch(x,y,),第,2,章 基本语法,例,4,利用函数文件,实现直角坐标,(,x,y,),与极坐标,(,),之间的转换。,函数文件,tran.m,:,function,rho,theta,=,tran(x,y,),rho,=,sqrt(x,*,x+y,*y);,theta=,atan(y/x,);,调用,tran.m,的程序文件,main1.m,:,x=,input(Please,input x=:);,y=,input(Please,input y=:);,rho,the,=,tran(x,y,);,rho,the,第,2,章 基本语法,3,全局变量和局部变量,全局变量用命令,global,定义。函数文件的内部变量是局部的,与其他函数文件及,MATLAB,工作空间相互隔离。,第,2,章 基本语法,例,5,全局变量应用示例。,先建立函数文件,wadd.m,,该函数将输入的参数加权相加。,function f=,wadd(x,y,),global ALPHA BETA,f=ALPHA*,x+BETA,*y;,在命令窗口中输入:,global ALPHA BETA,ALPHA=1;,BETA=2;,s=wadd(1,2),第,2,章 基本语法,4,文件操作,文件的打开与关闭,1.,打开文件,fopen,函数的调用格式为:,Fid=,fopen,(,文件名,打开方式,),2.,关闭文件,调用格式为:,Sta,=,fclose(Fid,),第,2,章 基本语法,二进制文件读写操作,1.,读二进制文件,fread,函数可以读取二进制文件的数据,并将数据存入矩阵。其调用格式为:,A,COUNT=,fread(Fid,size,precision),2.,写二进制文件,fwrite,函数按照指定的数据精度将矩阵中的元素写入到文件中。其调用格式为:,COUNT=,fwrite,(Fid,A,precision),第,2,章 基本语法,程序调试,需要用调试命令的主要是函数程序,把某些分号改为逗号,使中间结果能显示在屏幕上,作为查错的依据。,在子程序中适当部位加,keyboard,命令。,在函数文件的第一行前加,是它成为程序文件,进行初步调试。,使用,MATLAB,提供的调试命令。,第,2,章 基本语法,练习,1.,建立一个,M,文件,(,脚本文件,),要求:当用户输入任意一个矩阵,显示该矩阵的行数和列数。,提示函数:,m,n,=,size(),input,(),2.,建立一个函数文件,要求:用条件结构编写函数程序,实现下面的函数:,要求:输入任意一个自变量,x,,得出,y,值。测试运行结果,记录正确代码,3.,编写函数文件求半径为,r,的圆的面积和周长。,thank you!,
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        关注我们

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服