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

上传人:牧羊曲112 文档编号:6512135 上传时间:2023-11-08 格式:PPT 页数:83 大小:332.99KB
返回 下载 相关 举报
MATLAB语言及应用-第二章.ppt_第1页
第1页 / 共83页
MATLAB语言及应用-第二章.ppt_第2页
第2页 / 共83页
MATLAB语言及应用-第二章.ppt_第3页
第3页 / 共83页
MATLAB语言及应用-第二章.ppt_第4页
第4页 / 共83页
MATLAB语言及应用-第二章.ppt_第5页
第5页 / 共83页
点击查看更多>>
资源描述

《MATLAB语言及应用-第二章.ppt》由会员分享,可在线阅读,更多相关《MATLAB语言及应用-第二章.ppt(83页珍藏版)》请在三一办公上搜索。

1、第2章 基本语法,变量及其赋值 矩阵的初等运算 元素群运算 逻辑判断及流程控制基本绘图方法M文件及程序调试,变量及其赋值 矩阵的初等运算 元素群运算 逻辑判断及流程控制基本绘图方法M文件及程序调试,第2章 基本语法,第2章 基本语法,变量及其赋值标识符与数矩阵及其元素的赋值复数变量检查基本赋值矩阵,第2章 基本语法,标识符与数标识符是标识变量名、常量名、函数名和文件名的字符串的总称。在MATLAB中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多19个字符;函数和文件名则通常不超过8个字符。在MATLAB中,变量名区分字母的大小写。MATLAB提供的标准函数名以及命令名必须用小写字

2、母。,第2章 基本语法,矩阵及其元素的赋值MATLAB赋值语句有两种格式:(1)标准赋值格式:变量=表达式(或数)(2)不要等式左端而只剩下“表达式”一般地,运算结果在命令窗口中显示出来。如果在语句的最后加分号,那么,MATLAB仅仅执行赋值操作,不再显示运算的结果。在MATLAB语句后面可以加上注释,注释以%开头,后面是注释的内容。,第2章 基本语法,例2.1 计算表达式的值,并将结果赋给变量x,然后显示出结果。在MATLAB命令窗口输入命令:x=(5+cos(47*pi/180)/(1+sqrt(7)-2*i)%计算表达式的值,第2章 基本语法,复数MATLAB的每一个元素都可以是复数,实

3、数是复数的特例。对复数矩阵有两种赋值方法:(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)内存变量文件利

4、用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

5、、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同样大小零

6、矩阵: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行的全部

7、元素;A(i,j)表示取A矩阵第i行、第j列的元素。A(i:i+m,:)表示取A矩阵第ii+m行的全部元素;A(:,k:k+m)表示取A矩阵第kk+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第ii+m行内,并在第kk+m列中的所有元素。此外,还可利用一般向量和end运算符等来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下标。,第2章 基本语法,(2)利用空矩阵删除矩阵的元素在MATLAB中,定义为空矩阵。给变量X赋空矩阵的语句为X=。注意,X=与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间,只是维数为0。将某些元素从矩阵中删除,采用将

8、其置为空矩阵的方法就是一种有效的方法。,第2章 基本语法,四 多维矩阵以三维矩阵为例,常用的方法有4种:(1)对二维矩阵进行扩充得到三维矩阵。(2)若干个同样大小的二维矩阵进行组合得到三维矩阵。(3)除产生单位矩阵的eye函数外,前面介绍的建立矩阵的函数都可以延伸到三维矩阵。(4)用cat函数构建多维矩阵。一般调用格式是:cat(n,A1,A2,An)cat函数把大小相同的若干矩阵,沿第n维方向串接成高维矩阵。当n=1和2时,沿行和列的方向串接,结果是二维矩阵。当n=3时,沿列的方向串接,结果是三维矩阵。,变量及其赋值 矩阵的初等运算 元素群运算 逻辑判断及流程控制基本绘图方法M文件及程序调试

9、,第2章 基本语法,第2章 基本语法,矩阵的初等运算1.基本算术运算 MATLAB的基本算术运算有:(加)、(减)、*(乘)、/(右除)、(左除)、(乘方)。注意:运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。2.点运算 点运算符有.*、./、.和.。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。3MATLAB常用数学函数,变量及其赋值 矩阵的初等运算 元素群运算 逻辑判断及流程控制基本绘图方法M文件及程序调试,第2章 基本语法,第2章 基本语法,元素群运算1.数组及其赋值 MATLAB提供了两种为等间隔数组赋值的简易方法(1)用两个冒号组成等增量语句,其

10、格式为:t=初值:增值:终值(2)用linspace函数。其格式为:linspace(初值、终值、点数)2.四则运算和幂次运算 矩阵中的所有元素按单个元素运算。3.元素群函数,变量及其赋值 矩阵的初等运算 元素群运算 逻辑判断及流程控制基本绘图方法M文件及程序调试,第2章 基本语法,第2章 基本语法,一 关系运算 MATLAB提供了6种关系运算符:(大于)、=(大于或等于)、=(等于)、=(不等于)。关系运算符的运算法则。二 逻辑运算 MATLAB提供了3种逻辑运算符:&(与)、|(或)和(非)。运算法则。三 流程控制语句,第2章 基本语法,1 if语句 在MATLAB中,if语句有3种格式。

11、(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 输入一个字符,若为

12、大写字母,则输出其后继字符,若为小写字母,则输出其前导字符,若为数字字符则输出其对应的数值,若为其他字符则原样输出。程序如下:c=input(请输入一个字符,s);if c=A end,第2章 基本语法,2 while语句 while语句的一般格式为:while(条件)循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环。,第2章 基本语法,循环的嵌套如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构。可以按照嵌套层数,分别叫做二重循环、三重循环等。处于内部的循环叫作内循环,处于外部的循环叫作外循环。在设计

13、多重循环时,要特别注意内、外循环之间的关系,以及各语句放置的位置,不要搞错。,第2章 基本语法,例2.5 一皮球从200米高度自由落下,每次落地后反弹回原高度的一半开始再次下落,试编写一段程序,(1)给出皮球弹起的次数及最后一次的反弹高度;(2)皮球经过的总路程。(提示:eps浮点相对差限,表示matlab能计算的数据差的最小值),第2章 基本语法,%s为总路程,h为弹起高度,n为弹起次数s=0;h=200;n=0;while hepss=s+h;h=h/2;s=s+h;n=n+1;enddisp(经过的总路程)disp(s)disp(弹起次数)disp(n)disp(弹起高度)disp(h)

14、,第2章 基本语法,3 for语句 语句格式为:for 循环变量=表达式1:表达式2:表达式3 循环体语句 end 首先计算三个表达式的值,再将表达式1的值赋给循环变量,如果此时循环变量的值介于表达式1和表达式3的值之间,则执行循环体语句,否则结束循环的执行。执行完一次循环之后,循环变量自增一个表达式2的值,然后再判断循环变量的值是否介于表达式1和表达式3之间,如果满足仍然执行循环体,直至不满足为止。这时将结束for语句的执行,而继续执行for语句后面的语句。,第2章 基本语法,for语句更一般的格式:for 循环变量=矩阵表达式 循环体语句 end 执行过程是依次将矩阵的各列元素赋给循环变量

15、,然后执行循环体语句,直至各列元素处理完毕。实际上,“表达式1:表达式2:表达式3”是一个仅为一行的矩阵(行向量),因而列向量是单个数据。例2.6 求1到200之间所有奇数之和,写出程序和运行结果。,第2章 基本语法,程序如下:(1)i=1;s=0;while(i=200)s=s+i;i=i+2;ends,(2)s=0;for i=1:2:200s=s+i;ends,第2章 基本语法,例2.7 已知5个学生4门功课的成绩,求每名学生的总成绩。程序如下:s=0;a=65,76,56,78;98,83,74,85;76,67,78,79;98,58,42,73;67,89,76,87;for k=

16、a s=s+k;enddisp(s);,第2章 基本语法,4 switch语句 其语句格式为:switch 表达式 case 表达式1 语句组1 case 表达式2 语句组2 case 表达式m 语句组m otherwise 语句组m+1 end,第2章 基本语法,例2.8 某商场对顾客所购买的商品实行打折销售,已知打折标准,求所售商品的实际销售价格。程序如下:price=input(请输入商品价格);switch fix(price/100)case 0,1 rate=0;case 2,3,4 rate=3/100;case num2cell(5:9)rate=5/100;case num2

17、cell(10:24)rate=8/100;case num2cell(25:49)rate=10/100;otherwise rate=14/100;end price=price*(1-rate),第2章 基本语法,例2.9 使用switch-case结构完成卷面成绩score的转换。(1)score90分,优;(2)90score80分,良;(3)80score70分,中;(4)70score60分,及格;(5)60score,不及格;,第2章 基本语法,程序如下:score=input(请输入卷面成绩:score=);switch fix(score/10)case 9grade=优c

18、ase 8grade=良case 7grade=中case 6grade=及格otherwisegrade=不及格end,第2章 基本语法,5 try语句语句格式为:try 语句组1catch 语句组2end 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

19、;catch C=A.*B;endClasterr%显示出错原因,第2章 基本语法,例2.11 已知某图像文件名为kids,但不知其存储格式为.bmp还是.tif,试编程,正确读取该图像文件并显示图像。程序如下:try picture=imread(kids.bmp);catch picture=imread(kids.tif);endimshow(picture)lasterr%显示出错原因,变量及其赋值 矩阵的初等运算 元素群运算 逻辑判断及流程控制基本绘图方法M文件及程序调试,第2章 基本语法,第2章 基本语法,基本绘图方法1 直角坐标中的二维曲线2 线型、点型和颜色3 多条曲线的绘制4

20、 屏幕控制和其他二维绘图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同维的矩阵时,则绘制出多根不同色彩的曲

21、线。曲线条数等于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 多条曲线的绘

22、制(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)双纵坐标函数plotyyplotyy函数是MATLAB 5.X新增的函数。它能把函数值具有不同量纲、不同数量级的两个函数绘制在同一坐标中。调用格式为:plotyy(x1,y1,x2,y2)其中x1y1对应一条曲线,x2y

23、2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左纵坐标用于x1y1数据对,右纵坐标用于x2y2数据对。,第2章 基本语法,例3 用不同标度在同一坐标内绘制曲线y1=e-0.5xsin(2x)及曲线y2=1.5e-0.1xsin(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

24、(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 v

25、ariable 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

26、命令控制是画还是不画网格线,不带参数的grid命令在两种状态之间进行切换。box on/off命令控制是加还是不加边框线,不带参数的box命令在两种状态之间进行切换。,第2章 基本语法,例5 用图形保持功能在同一坐标内绘制曲线y=2e-0.5xsin(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;%加网格线 b

27、ox 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);su

28、bplot(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);%选

29、择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

30、,试用饼图作成绩统计分析。(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

31、(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=x2-2y2构成的曲面形状及与平面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,z

32、1);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章 基本语法,其他三维图形 条形图、饼图和填充图等特殊图形,它们还可以以三维形式

33、出现,使用的函数分别是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为仰角,它们均以度为单位

34、。系统缺省的视点定义为方位角-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)sub

35、plot(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.三维表面图形的着色 三维表面图实际上就是在网格

36、图的每一个网格片上涂上颜色。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)例1

37、2 光照处理后的多峰函数曲面。程序如下: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函数分别用于将图像文件

38、读入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幅的速度播放球面,变量及其赋值 矩阵的初等运算 元素群运算 逻辑判断及流程

39、控制基本绘图方法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,

40、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)关于函数文件名:函数文件名与函数名也可以不相同。

41、当两者不同时,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;

42、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定义。函数文件的内部变量是

43、局部的,与其他函数文件及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.读二

44、进制文件 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!,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号