测控系统仿真基础3-4(基本语法续).ppt
1,测控系统仿真基础,测控技术与仪器专业,2,第2章 MATLAB的基本语法,2.1 变量及其赋值(1)2.2 运算符与数学表达式(3)2.3 控制流(4)2.4 数据的输入输出及文件的读写(5)2.5 基本数学函数(6)2.6 基本绘图方法(7)2.7 M文件及程序调试(2),3,2.2 运算符与数学表达式,1.算术运算符:进行数值计算。2.关系运算符:比较两个操作数的大小。3.逻辑运算符:进行逻辑运算。4.其他逻辑函数5.数学表达式的语言描述,4,1.算术运算符,(1)矩阵加减法“”:AB(2)矩阵相乘“*”:A*B(3)矩阵元素相乘“.*”:A.*B(4)矩阵右除“B/A”与左除“AB”(5)矩阵元素右除“A./B”与左除“A.B”(6)矩阵幂“”:Xp(7)矩阵元素幂“.”:A.B(8)矩阵转置“”(9)非共轭转置“.”(10)冒号操作符“:”,5,矩阵右除“B/A”与左除“AB”,右除“/”,相当与求方程 X A=B 的解A为非奇异方阵时,B/A 为 BA-1左除“”,相当与求方程 A X=B 的解A为非奇异方阵时,则 X=A-1B,6,冒号操作符“:”,冒号表达式例:,7,2.关系运算符,关系运算是指两个元素之间数值的比较。MATLAB所提供的关系操作符如表所示。关系比较结果只有两种可能,即1或0。1表示关系式这“真”,即关系式正确;0表示该关系为“假”,即它不成立。例:,8,各种允许的比较关系,=,=,=,=,find(),all(),any(),9,10,3.逻辑运算符,通常逻辑变量只能取0(假)和1(真)两个值。逻辑量的基本运算除“与(&)”、“或(|)”和“非()”外,有时也包括“异或(xor)”,不过“异或”可以用3种基本运算组合而成。两个逻辑量经过这4种逻辑运算后的输出仍然是逻辑量。,11,逻辑变量:当前版本有逻辑变量对 double 变量来说,非 0 表示逻辑 1逻辑运算(相应元素间的运算)与运算或运算非运算异或运算,12,4.其他逻辑函数,其他关系与逻辑函数,13,测试函数,14,作业。练习其他测试函数 的用法;用途?,15,5.数学表达式的语言描述,例:化简作业:练习常用化简函数 simple();合并同类项 collect();展开多项式 expand();因式分解 factor();提取多项式分子和分母 numden();三角函数化简 sincos()。其他:disp(),error();要求:M函数含有适当的注释,16,2.3 控制流,2.3.1 If语句2.3.2 Switch语句2.3.3 While语句2.3.4 for语句,17,2.3.1 If语句,格式之一:if 表达式 语句组A end其工作流程如图所示。,18,格式之二:if 表达式 语句组A else 语句组B end其工作流程如图所示。,19,格式之三:if 表达式1 语句组A elseif 表达式2 语句组B else 语句组C end工作流程原理如图2.3所示。,20,很少使用,21,例:y=0;for n=1:4if n2y=n2endend,22,sum=0;for m=1:100;if(sum100)mbreak;endsum=sum+mend,23,2.3.2 Switch语句,格式switch 选择表达式case 情况表达式1语句组1case 情况表达式2语句组2 otherwise 语句组nend,24,25,和 C 语言的区别,当开关表达式的值等于某表达式,执行该语句后结束该结构,不用 break同时满足若干个条件之一,则用单元形式otherwise 语句,不是 default程序的执行结果和各个case顺序无关case 语句中条件不能重复,否则列在后面的条件将不能执行,26,2.3.3 While语句,调用格式:while 表达式 语句A end,27,s=0;n=1;while n=10 s=s+n;n=n+1;b(n)=send,28,2.3.4 for语句,for语句也是循环语句,但与while语句不同的是,它循环执行一组语句的执行次数是确定。其关键字包括for、end、break等。调用的基本格式如下:for index=初值:增量:终值 语句组A end功能:把语句组A(亦称为循环体)反复执行N次。循环次数N为:N1+(终值-初值)/增量在每次执行时程序中的index的值按“增量”增加。,29,试探结构注意 break,continue,return 的使用,30,【例2-15】用循环求解 求最大的 m,31,2.4 数据的输入输出及文件的读写,2.4.1 交互输入与输出命令和函数2.4.2 文件输入输出命令与函数,32,2.4.1 交互输入与输出命令和函数,1键盘输入命令input 格式一:u=input(提示内容)格式二:u=input(提示内容,s)2.菜单输入命令menu 功能:产生一个供用户输入的选择菜单。格式:k=menu(title,选项1,选项2,选项n)3暂停执行命令pause pause 常用在M文件中,用于停止执行,直接按任意键继续执行;pause(n)暂停执行n秒后继续执行;pause on 允许一系列pause命令暂停程序执行;pause off 保证任何pause命令和pausea(n)语句不能暂停程序执行,33,4显示命令 disp功能:显示指定的变量或变量的内容。调用格式:disp(变量名)5按格式要求输出变量命令sprintf功能:按格式要求输出变量调用格式:sprintf(显示格式,变量)。,34,2.4.2 文件输入输出命令与函数,1save功能:用以将工作空间中的变量保存到磁盘上。格式一:save 将工作空间中的所有变量保存在一个名为:“matlab.mat”的二进制格式文件中,该文件可通过load命令来重新装入工作空间。格式二:save文件名 变量名将工作空间中指定的“变量名”保存在指定“文件名.mat”的二进制格式文件中。格式三:save文件名 选项使用“选项”指定ASCII文件格式,将工作实间中所有变量保存到“文件名”所指定的文件中。,35,2.load:功能:从磁盘文件中重新调入变量内容到工作空间。格式一:load 将保存在“matlab.mat”文件中的所有变量调入到工作空间。格式二:load 文件名从“文件名.mat”中调入变量,可给出全部路径。3.fopen功能:打开文件或获得打开文件信息。格式一:f_id=fopen(文件名,允许模式),36,以允许模式指定的模式打开“文件名”所指定的文件,返回文件标识f_id;允许模式 可以是下列几个字符串之一:r:打开文件进行读(缺省型式);w:删除己存在文件中的内容或生成一个新文件,打开进行写操作;a:打开一个己存在的文件或生成并打开一个新文件,进行写操作,在文件末尾添加数据;,37,格式二:f_id,message=fopen(文件名,允许模式,格式)功能:用指定的数据“格式”打开数据文件,返回文件标识和打开文件信息两个参数。“数据格式”。如果fopen成功打开文件,则返回文件标识f_id,message内容为空,如果不能成功打开,则返回f_id值为1,message中返回一个有助于判断错误类型的字符串。参照help文档,38,4fclose功能:关闭一个或多个已打开的文件。格式一:status=fclose(f_id)关闭指定文件,返回0表示成功,返回-1表示失败。格式二status=fclose(all)功能:关闭所有文件,返回0表示成功,返回-1表示失败。,39,5fread格式一:A,count=fread(f_id,size,精度)格式二:A,count=fread(f_id,size,精度,skip)6fwrite格式一:count=fwrite(f_id,A,精度)格式二:count=fwrite(f_id,A,精度,skip)7fscanf格式一:A=fscanf(f_id,格式)格式二:A,count=fscanf(f_id,格式,size)8fprintf格式一:count=fprintf(f_id,格式,A,)格式二:fprintf(格式,A,),40,9 fgets功能:以字符串形式返回文件中的下一行内容,包含行结束符。格式一:ctr=fgets(f_id)格式二:str=fgest(f_id,n)10 fgetl格式:str=fgetl(f_id),41,11 ferror功能:查询MATLAB关于文件输入、输出操作的错误。格式:messgeg=ferror(f_id)将标识为f_id的已打开文件的错误信息返回给message变量。12 feof功能:测试文件结尾(EOF)。格式:eoftest=feof(f_id)测试指定文件是否设置了EOF;如果返回1则表示设置了EOF指示器,返回0未设置。,42,13imread 功能:从图像文件中读入图像格式一:A=imread(文件名,图像文件格式)将文件名指定的图像文件读入A,A为无符号8位整数(uint8)。如果文件为灰度图像,则A为一个二维数组;如果文件是一个真彩色RGB图像,则A是一个三维数组(m*n*3)。格式二:A,map=imread(文件名,图像文件格式)读入索引图像到矩阵A,其调色板值返回给map,A为无符号8位整数(uint8),map为双精度浮点数,其值在0,1范围内。,43,14imwrite:将图像写入图像文件中。格式一:imwrite(A,文件名,图像文件格式)格式二:imwrite(A,map,文件名,图像文件格式)将A中的索引图像及其相关的调色板map存放到指定文件。调色板map必须是MATLAB的有效调色板。注意大多数图像文件格式不支持大于256条的调色板。15imfinfo 功能:返回图像文件信息格式:info=imfinfo(文件名,图像文件格式)返回一个图像信息结构,或结构数组。图像文件格式与imread函数的一样。,44,16auread功能:读入声音文件(.au)格式一:Y=auread(aufile)读入由文件名aufile指定的声音文件,返回采样数据给变量Y。如果文件名中没有扩展名,则自动在其后加上.au作为扩展名。幅值在-1,1范围内。支持多通道数据格式:8-bit mu-law;或 8-,16-,32-bitlinear。格式二:Y,Fs,bits=auread(aufile)返回采样率Fs(Hz)以及文件中每数据编码时所用的位数(bits)。,45,17Auwrite 功能:向文件(.au)中写入声音数据。格式一:auwrite(A,文件名.Au)向文件名.au指定的文件中写入声音数据,数据在A中以一个通道一列的方式安排,幅值超过-1,+1范围时,在写入前先进行剪裁处理。格式二:auwrite(A,Fs,文件名.au)用指定的数据采样Fs(Hz)写入声音数据。,46,18wavread功能:读入声音文件(.wav)格式一:A=wavread(文件名.wav)读入由文件名指定的Microsoft声音文件(.wav),返回采样数据给变量A。如果文件名中没有扩展名,则自动在其后加上.wav作为扩展名,幅值在-1,1范围内。格式二:A,Fs,bits=wavread(文件名.wav)返回采样率Fs(Hz)以及文件中每数据编码时所用的位数(bits)。,47,19wavwrite功能:向Microsoft WAV声音文件(.wav)中写入声音数据格式一:wavwrite(A,文件名.wav)向指定的文件中写入声音数据,数据在A中以一个通道一列的方式安排,幅值超过-1,+1范围时,在写入前先进行剪裁处理。格式二:wavwrite(A,Fs,文件名.wav)用指定的数据采样Fs(Hz)写入声音数据。,48,2.5 基本数学函数,2.5.1 三角函数2.5.2 指数、对数、幂运算复数的基本运算数据的取舍与保留,49,2.5.1 三角函数,1正弦sin函数与反正弦函数asin函数2双曲正弦sinh函数与反双曲正弦函数asinh函数3余弦cos函数与反余弦函数acos函数4双曲余弦cosh函数与反双曲余弦函数acosh函数5正切tan函数与反正切函数atan函数6四象限反正切atan2函数7双曲正切tanh函数与反双曲正切atanh函数8正割sec函数与反正割asec函数9双曲正割sec函数与反双曲正割asec函数10余割csc函数与反余割acsc函数。,50,1正弦sin函数与反正弦函数asin函数,格式:Asin(X)功能:对矩阵或数组X的每个元素求正弦值,所有角度用弧度表示。例:x=-pi:0.01:pi;plot(x,sin(x),grid on,51,格式:Xasin(A)功能:对于A的元素求反正弦值,结果为弧度。例:x=-1:.01:1;plot(x,asin(x),grid on作业:记住三角函数名称,52,2.5.2 指数、对数、幂运算,1指数exp函数与自然对数log函数2常用对数logl0函数3 log2函数和幂函数pow24平方根函数,53,1指数exp函数与 自然对数log函数,格式:Aexp(X)功能:返回X每个元素的以e为底的指数值。格式:Xlog(A)功能:返回A的每个元素的自然对数例:clc;a=log(exp(5),54,2常用对数logl0函数格式:Xlogl0(A)功能:对A的每个元素求常用对数。3 log2函数和幂函数pow2格式:Xlog2(A)功能:对A的每个元素计算其以2为底的对数。格式:A=pow2(X)功能:A的元素为2对X每个元素求幂得到。4平方根函数格式:A=sqrt(X)功能:返回对数组X每个元素求平方根的数组,如果元素为负或复数,则结果为复数。,55,复数的基本运算,求复数实部函数real格式:X=real(Z)求复数的虚部函数imag格式:Y=imag(Z)绝对值和复数模函数abs格式:A=abs(Z)求相角函数angle格式:P=angle(Z)共轭函数conj格式:C=conj(Z),56,数据的取舍与保留,若X为复数,则分别对X的实部和虚部取整。1向0方向取整数函数fix 格式:I=fix(X)返回X中每个元素的最靠近零的整数。2向-方向取整数函数floor 格式:I=floor(X)返回X中每个元素的最靠近该元素的最小整数。3向方向取整数函数ceil格式:I=ceil(X)返回X中每个元素的最靠近该元素的最大整数4四舍五入取整数函数round格式:I=round(X),57,5模数余函数mod格式:M=mod(X,Y)返回X关于Y的余数。算法见教材6除后余数函数rem格式:M=rem(X,Y)功能:返回X关于Y的余数。算法见教材7符号函数sign格式:s=sign(X)如果X大于零,则返回1;如果X等于零,则返回0;如果X小于零,则返回-1。如果X为复数,则算法为:SIGN(X)=X./ABS(X)。,58,2.6 基本绘图方法,2.6.1 图形窗口的控制2.6.2 二维图形的绘制2.6.3 多条曲线的绘制2.6.4 复数的绘图2.6.5 三维曲线和曲面,59,2.6.1 图形窗口的控制,通常,只要执行了任意一种绘图命令,图形窗口(Figure)就会自动产生。1figure命令格式:figure 或 figure(N)功能:创建一个图形窗口。使编号为N的图形窗口成为当前图形窗口,即图形窗口处于可视状态。如果窗口N不存在,则将创建一个句柄为N的图形窗口。利用get()函数可获得当前图形窗口信息(如get(0)。,60,2clf命令:清除当前图形窗口中的所有的内容。格式:clf3close命令:关闭图形窗口格式一:close 或 close(N)关闭当前图形窗口或指定编号N的图形窗口。格式二:close all 关闭所有图形窗口。,61,4hold命令格式:hold on(off)功能:保持当前图形窗的内容,或取消hold on的命令功能,恢复系统默认状态。通常,MATLAB在执行某一绘图命令时,系统会自动将当前图形窗口中的内容清除,然后再绘制。hold命令的功能就是保持当前图形窗的内容,使后续绘制函数仍可该图形窗口中完成绘图,实现一张图中绘制多个图形。若再键入hold命令就解除冻结。这种拉线开关式的控制有时会造成混乱,可以用hold on和hold off命令来得到确定的状态。,62,5subplot命令功能:将一个图形窗口划分为多个子图形窗口格式:subplot(m,n,p)或 subplot(nmp)将图形窗口分成nm个子图形窗口,并选择第p个子图形窗口作为当前图形窗口,供绘制函数作图使用。例:,63,subplot(2,2,1 3)subplot(2,2,2)subplot(2,2,4),64,subplot(2,2,1:2)subplot(2,2,3)subplot(2,2,4),65,2.6.2 二维图形的绘制,1.二维图形绘制命令plot2线型、标记符号及颜色的设置3图形的标注、网格以及图例说明4坐标轴的形式与刻度5.二维图形其它的相关函数命令,66,x,y=ginput(n)x,y=ginputx,y,button=ginput(.)ginput enables you to select points from the figure using the mouse for cursor positioning.The figure must have focus before ginput receives input.,67,x,y=ginput(n)enables you to select n points from the current axes and returns the x-and y-coordinates in the column vectors x and y,respectively.You can press the Return key to terminate the input before entering n points.,68,x,y=ginput gathers an unlimited number of points until you press the Return key.x,y,button=ginput(.)returns the x-coordinates,the y-coordinates,and the button or key designation.button is a vector of integers indicating which mouse buttons you pressed(1 for left,2 for middle,3 for right),or ASCII numbers indicating which keys on the keyboard you pressed.,69,2.6.3 多条曲线的绘制,1使用plot(t,y1,y2,)命令该语句中t是向量,y=y1,y2是矩阵,若t是列向量,则y的列(行)长应与t长度相同。Y的列(行)数就是曲线的条数。2.使用hold命令3.利用plot(x1,y1,x2,y2,.,xn,yn)语句在该语句中,x1,y1,x2,y2,.,xn,yn等分别为向量对。每一对X-Y向量可以绘出一条图线,这样就可以在一张图上画出多图线,每一组向量对的长度可以不同,在其后面都可加线型标志符。4使用plotyy命令:plotyy(x1,y1,x2,y2)它设有两个坐标,左纵坐标对应y1,右纵坐标对应y2,以便绘制两个y尺度不同的变量,但x仍用同一个比例尺。,70,2.6.4 复数的绘图,当plot(z)中的z为复数变量时(即含有非零的虚部),MATLAB把复数的实部作为横坐标、虚部作为纵坐标绘图,即相当于plot(real(z),imag(z)。,71,2.6.5 三维曲线和曲面,1空间曲线绘制函数plot3()格式一:plot3(x,y,z)功能:若x、y、z为相同长度的向量,则根据向量x、y、z绘制空间三维曲线。如果x、y、z为同阶矩阵,则绘制对应列的多条曲线。格式二:plot3(x,y,z,s)功能:按字符串s设置的线型、颜色、标记符号绘制三维空间曲线。字符串s的设置与plot命令的设置相同。,72,2三维网线图函数mesh、meshc和meshz MATALB提供的函数mesh用来绘制三维网线图。格式一:mesh(X,Y,Z)功能:根据矩阵X、Y和Z绘制彩色的空间三维网线图。X、Y和Z中对应的元素为三维空间上的点,点与点之间用线连接。其中网线的颜色随着网点高度的改变而改变。格式二:mesh(x,y,Z)功能:n维向量x、m维向量y和mn矩阵Z绘制网线图,节点的坐标为(x(j),y(i),Z(i,j),网线的颜色随着网点高度的改变而改变。,73,3三维曲面图函数surf及surfc格式一:surf(X,Y,Z,C)功能:绘制由四个矩阵所指定的带色参数的网状表面图。视角是由view所指定。轴的刻度决定于X,Y及Z的范围,或当前对轴的设定;颜色范围由C指定。格式二:surf(X,Y,Z)功能:将C设为与Z相等,则颜色与网的高度成正比。,74,4视图函数view格式一:view(az,el)或 view(az,el)功能:设置观察者观察三维图形的视角。az是方位角或者是水平旋转角度,el是仰角。格式二:view(2)或 view(3)功能:设置观察三维图形视角的默认值(az=0,el=90;az=-37,el=30)格式三:az,el=view功能:返回当前的方位和视角,