




已阅读5页,还剩193页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章 仿真软件 MATLAB基础与应用,第六章 仿真软件MATLAB基础与应用,示例演示,第一节 引言,第二节 MATLAB 基础,第三节 图形与可视化,第四节 线性系统分析与设计,第五节 SIMULINK基础,先看几个例子:,(1)计算下列线性方程的解:,(2)绘制如下的图形:,li1.m,li2.m,(3)画出该连续系统的根轨迹。(自控P253),(4)完成以下控制系统的阶跃响应仿真曲线。,li3.m,li4.mdl,6.1 引言,一、 MATLAB的历史背景 全名:矩阵实验室(MATrix LABoratory)是以数值计算、数据图示为基础,包含多种专业工具箱,适合多学科、多平台的功能强劲的大型软件。 70年代,由美国New Mexico大学计算机系主任Cleve Moler讲授线性代数时编写,受到师生的欢迎而广为流传。,1984年成立MathWorks公司,并把MATLAB正式推向市场。MATLAB的内核采用C语言编写,而且除原有的数值计算能力外,还新增了数据图视功能。 在此之前,国际上的数值计算软件包大多使用Fortran、C编写,缺点:适应面窄、可扩充性差、不开放等,难以推广应用。 MATLAB的出现打破了这一局面,它的高度适应性、可扩充性等优良特性吸引了很多科学界人士,很多人开始在MATLAB上开发自己的应用工具箱,MATLAB一步步壮大起来。,MATLAB由原来的只有UNIX版本,发展到DOS版、Windows版等多种版本;目前,已发展到了7.2版本,其中包含的工具箱有30多个,还有很多MATLAB工具箱可以从Internet网络上取到,包含的学科很多,并且比较多的工具箱是免费的。,(1)语言简洁紧凑,有丰富的数学库函数,包括矩阵各种运算。如:正交变换、三角分解、特征值、常见的特殊矩阵等。,包括各种数学运算功能,从最基本的sum、sin、cos等到复杂的如:数值微分、积分、插值、求极值、方程求根、常微分方程的数值解等,还有各种特殊函数。,二、 MATLAB语言的主要特点,(2)语法限制不严格,程序设计自由度大,(3)源程序的开放性,除内部函数以外的所有文件都是可读可改的源文件。,(4)具有很好的图视系统,可方便地画出两维和三维图形。,图形用户界面GUI制作工具,可以制作用户菜单和控件。,高级图形处理。如:色彩控制、句柄图形、动画等。,(5)使用方便,具有很好的扩张功能。,M文件可转变为独立于平台的EXE可执行文件。,使用MATLAB语言编写的程序可以直接运行,无需编译。,MATLAB的应用接口程序API使用户可以在FORTRAN或C中,把MATLAB当作计算引擎使用。,可以直接处理声言和图形文件。,工具箱又分成功能性工具箱、学科性工具箱两类:功能性工具箱主要用来扩充图示建模、符号计算、文字处理及与硬件实时交互功能,如Simulink、Symbolic Math、 Notebook等,能用于多种学科。,学科性工具箱是专业性比较强的如:控制系统设计、通讯、财政金融、频域系统辩识、模糊逻辑、图象处理、神经网络、鲁棒控制、信号处理、统计、系统辩识、实时仿真、DSP工具、非线性控制器设计、电力系统仿真等。,(4)具有若干功能强大的应用工具箱。,1、了解MATLAB的特点及应用领域。,3、掌握MATLAB语言的程序设计方法。,三、目的和要求:,2、掌握MATLAB环境的基本使用方法和数学运算。,4、掌握MATLAB的图形绘制方法。,5、掌握分析设计线性系统的方法。,6、掌握Simulink进行控制系统仿真基本方法。,6.2 MATLAB基础,6.2.1、 MATLAB基本操作 () 工作空间的管理 双击图标 可启动matlab,通常进入“命令窗口”,可实现对工作空间workspace的管理,可执行matlab所有的命令,创建文件、图形,完成运算等。,常用命令: who whos查看工作空间中的变量;,help按键入的标题提供帮助信息;,lookfor搜索所有help,返回含关键词的项;,clear aa bb清除工作空间变量aa bb; clear清除工作空间所有变量;,save test-工作空间变量存到test.mat文件中 load test-从test.mat读取变量到工作空间,(2) 设置工作路径,路径设置很重要,否则可能无法读取某些文件,导致程序无法进行。 路径设置有两种方法: 命令方式:直接在命令窗口用path命令,显示已规定的搜索路径;path(path,c:aabbcc)可添加路径,但退出matlab后再次进入,不保留。 菜单方式:FileSet Path进入,可方便地添加和更改工作路径,而且只要save 后可保存住。 当前路径可在命令窗口的Current Directory处设置,可方便对文件进行open、save操作。,(3) 文件格式,MATLAB文件格式有两种: 在命令窗口下执行的脚本文件,所用的变量都要在工作空间中建立并获得,退出MATLAB后就释放了。若想保留,可存储工作空间。 可存取的M-file文件,在FileNewM-file,进入Editor/Debugger窗口编辑M-file文件。,M-file文件,命令文件,函数文件,用于把需在命令窗口执行的命令放在一起便于修改,无输入参数也无输出参数。,用于把重复的程序段封装起来,可以输入参数,也可输出参数,其变量为局部变量,只有输入输出参数保留在工作空间。,M-file文件,命令文件,函数文件,脚本文件,Matlab 文件形式,1、变量 变量在使用前不需定义维数和大小。 命名规则:以字母打头、不含标点符号、最多不超过19个字符,区分字母的大小写,如X1、 x1、 a、 A等。另外要避免使用特殊变量。 变量可按需要定义成全局变量和局部变量:,6.2.2、 MATLAB基本设计,避免使用特殊变量:,2、 数据,MATLAB的数值计算都采用双精度浮点运算,指定精度运算需用符号工具箱处理。在数值计算中只能改变数据的显示格式。 改变显示格式的方法: 菜单方式: File Preference中Command Window Text display Numeric format中设置。,MATLAB有六种数据类型,每个类型都可为一维、二维和多维。,3、 常用标点符号,,和 ;可用于隔开放在一行中的多条命令,或者命令的末尾,注意区别: 逗号,显示运行结果 分号;不显示运行的结果 如果一行中无法写下一个完整命令,可在行尾加入三个连续的点,表示命令余下的部分在下一行出现。 百分号%之后的所有文字为注释,注释为单行型。,4、简单数学运算,MATLAB可以象计算器一样进行一些简单的数学运算,如可直接输入16*12.2+25*1.82 计算。常用运算符有: MATLAB支持常用的基本数学函数,要注意只对弧度操作,如sin(30*pi/180)=0.5。 复数运算不需要特殊处理,用i、j和sqrt(-x)表示,运算时与实数运算形式相同。还可以用real、imag、abs、angle命令来表示一个复数的实部、虚部、幅值和相角。,MATLAB最基本、也是最重要的功能就是进行实数矩阵或者复数矩阵的运算。 向量可作为矩阵的一行或者一列,标量(一个数)优势则可以作为只含有一个元素的矩阵,故向量和标量都可以作为特殊矩阵来处理。矩阵的操作和命令和我们平时使用的形式很相似。,6.2.3、 矩阵运算,矩阵表达式 用 表示,矩阵元素间用空格或逗号隔开,行用分号隔开。 如:a=1 2 3;4 5 6,b=7 8 9 矩阵转置 用A如:aa=a 对于复数矩阵是进行Hermit转置,先对矩阵元素转置,再逐项求取共轭数值。 p13.m,1、矩阵表示和块操作,n,m= size(A) 返回矩阵A的行数n,列数m n=length(A)=max(size(A) 返回矩阵A的行数、列数的最大值, 矩阵块操作 P15.m 可进行元素更改、插入子块、提取子块、重排子块、扩大子块等。冒号“:”的应用:代表全部,矩阵大小的查询 P14.m,2、矩阵运算,1)矩阵与标量的运算,矩阵与标量进行+ - 和乘方运算时,是完成矩阵的每个元素对标量的运算。 如a=1 2 3;4 5 6 , 要运算a1=a+2, a2=a-2, a3=a*2 , a4=a/2 ; 矩阵乘方时要求矩阵为方阵,如b=2 4;1 5, b1=b2 %求平方b*b b2=b(-1) %求b的逆矩阵 b3=b(0.2) %对b开次方 p18.m,.矩阵与矩阵的运算,(1).矩阵的加减运算 矩阵的维数完全相同时才能进行加减运算, 如 a=1 2 3;4 5 6, b=7;8;9, c=10 11 12 如计算 c1=a+b; c2=b+c; 前者由于a b 维数不等出错 p19.m,(2).矩阵乘法运算 矩阵的维数相容(a的列数=b的行数)时才能进行a*b的乘法运算, 若a=1 2 3;4 5 6, b=1 2;3 4,则不相容。,(3)矩阵除法运算 有左除和右除两种: 左除: AB=A-1B,A为方阵(X=AB是A*X=B的解) 右除: A/B=AB-1,B为方阵(X=A/B是X*B=A的解) 通常ABA/B p20.m,(4).矩阵点运算 矩阵有* / ,向量有 .* . ./ .。但矩阵也可用点运算,是矩阵对应元素之间的直接运算(element by element)。点乘、点除要求矩阵的维数相同。 P21.m,3、常用特殊矩阵和矩阵函数,常用矩阵函数,常用特殊矩阵,MATLAB被成为第四代编程语言,具有极高的编程效率,而且简单易学。 一、M文件 分成命令文件(脚本文件)和函数文件两种: 命令文件 用于把需在命令窗口执行的命令放在一起便于修改,无输入参数也无输出参数,比函数文件简单。,6.2.4 MATLAB程序设计,命令文件可对工作空间的变量进行操作,而且运行后 ,所产生的所有变量都驻留在工作空间,可被其它M文件或 SIMULINK直接引用(例mfile1、2 ),直到关闭MATLAB或使用清除指令clear。 若要被某函数文件引用,则必须定义为全局变量(glabol a b )。,用于把重复的程序段封装起来,完成复杂任务,可以输入输出参数,输入输出变量可以是标量、数组、矩阵或字符串,也可以没有输入输出参数。 函数文件的笫一行总是以 “function”引导的“函数申明行”。基本格式: function y1,y2,=myfunc(x1,x2,),函数文件,关键字,输出变量,函数名,输入变量,M函数文件有自己的工作空间,与MATLAB工作空间分开,二者之间由输入输出变量联系; M函数除输入输出变量外都是局部变量,在该函数返回后就自动清除掉了。若要在工作空间起作用,则定义为全局变量,并且应在工作空间和M函数中都要同时定义。 函数名和函数文件名最好统一,以免出错。,函数申明行:位于函数文件的首行,以关键字 function 开头,函数名以及函数的输入输出变量都在这一行被定义。 笫一注释行:紧随函数申明行之后以%开头笫一注释行。该行供lookfor关键词查询和 help在线帮助使用 在线帮助文本区 :笫一注释行及其之后的连续以%开头的所有注释行构成整个在线帮助文本。 编写和修改记录:与在线帮助文本区相隔一个“空”行,也以%开头,标志编写及修改该M文件的作者日期等 。 函数体:为清晰起见,与前面的注释以“空”行相隔。 例:myguass.m testguass.m,典型 M函数文件的结构如下 :,、顺序结构 、循环结构: 、分支结构:,二.程序结构和控制语句(主要是三种结构):,if 条件表达式1 命令串1 elseif 条件表达式2 命令串2 . else 命令串 end myif.m,switch 表达式 case 值1 命令串1 case 值2 命令串2 . otherwise 命令串 end,固定次数的for和不定次数的while,for 循环变量=数组范围 命令串 end myfor.m,while 条件表达式 命令串 end mywhile.m,1、关系操作符 非零数值为真(1)、零为假(0 ) (大于) =(大于或等于) = =(等于) =(不等于) MATLAB的关系操作符可以用来比较两个大小相同的数组,或者比较一个数组和一个标量。在与标量比较时,结果和数组大小一样。 例p38 2、逻辑操作符:定义按照“与”、“或”、“非”的关系表达式 &(与) |(或) (非) 3、NaN、Inf和空矩阵 例p40 NaN(Not a Number)表示: 0/0 或 Inf-Inf Inf表示: 1/0或计算中的数值上溢产生的 空矩阵是行列数为0的矩阵,是逻辑上的无或不存在,三.关系和逻辑运算,可定义一串文字并进行字符串的处理与运算。字符串是ASCII码的数值数组,每个字符占用2个字节存储。 定义格式:用单引号括起来 x=Matlab is a software 字符串的转换 MATLAB定义一些字符串转换函数 如: 例p41.m 字符串运算函数 eval命令是执行字符串的功能,可以执行一些操作命令,运行已有的M函数,计算并赋值给其它变量。 例p43.m,四.字符运算,五.数据的输入输出,1、数据不多时,可由FileSave Workspace As保存工作空间当前所有变量(保存为*.mat)。类似地,由File Import Data 可装载数据。 2、save、load命令:以二进制格式保存和读入 save 将工作空间所有变量以二进制格式存入matlab.mat save filename 将所有变量以二进制格式存入filename.mat save filename x y z 将变量x y z以二进制格式存入 filename .mat save filename x y z ascii 以8位ASCII代替二进制格式 与save相对应,可用load命令加载数据。 3、低级文件输入输出命令 常用基本命令 例inout.m,%inout.m f1=fopen(test.txt,r) p=fscanf(f1,%c) f2=fopen(C:Documents and SettingsAdministrator桌面教学simulation程序chapter1name1.m,w); fprintf(f2,%s15n,%9.5fn,%9.5fn,%4(3.5f)n,p); fclose(all);,多项式运算是线性代数、线性系统分析中的重要内容。 一、多项式的表示方法 对于 P(x)=a0xn + a1xn-1 + + an-1x + an , 用多项式系数的降幂排列的行向量表示: P=a0 a1 an-1 an 二、求根及其逆运算 roots(p) 求多项式的根,并按列向量存储。 p=1 2 0 -5 6; %p(x)=x4+2x3-5x+6的多项式 rr=roots(p); %求根,按列向量存储 rr = -1.8647 + 1.3584i -1.8647 - 1.3584i 0.8647 + 0.6161i 0.8647 - 0.6161i poly(rr) 由根的列向量求多项式的系数。 例p30.m pp = 1.0000 2.0000 0.0000 -5.0000 6.0000,6.2.5多项式运算,三、加、减与乘法 1、 加、减可直接进行,要求两个多项式的行向量元素数目相等,当两个多项式阶数不等时,需补充0元素。 p=1 2 0 -5 6; %p(x)=x4+2x3-5x+6的多项式 s=0 0 1 2 3; %s(x)=x2+2x+3为与p进行加减, 补0使行向量元素相等 c1=p+s; c1 = 1 2 1 -3 9 %c1(x)=x4+2x3+x2-3x+93x+9 2、 conv(a,b) 完成两个多项式的乘法 f1=1 1;f2=1 2;f=conv(f1,f2) f = 1 3 2 %f(x)=(x+1)*(x+2)=x2+3x+2,四、多项式的微分和赋值 1、 微分由polyder命令完成 p=1 2 0 -5 6; %p(x)=x4+2x3-5x+6的多项式 f=polyder(p); %多项式的微分 f = 4 6 0 -5 %p(x)=4x3+6x2 - 5 2、给出多项式P(x)中自变量的范围,polyval可以计算出多项式的值 x=-1:0.1:2; %x由-1到2 y=polyval(p,x); %针对自变量x,计算多项式p(x)的值,五、有理多项式 常用于线性系统的Fourier变换、Laplace变换和Z变换。 有理多项式的表示: 分别由分子多项式和分母多项式表示; 部分分式展开 r,p,k=residue(num,den) 见 num分子多项式系数行向量; den分母多项式系数行向量; 部分分式拟和 num,den=residue(r,p,k) 例p32.m,%p32.m,首先需安装Symbolic Toolbox工具箱。 一、符号表达式 符号表达式是包括数字、代数或有理运算和符号变量的MATLAB字符串,不要求预先确定变量的值。 1.创建符号表达式 简易: 用字符串变量的生成法 标准方法:sym( )命令创建 syms 命令创建的符号函数与sym()方法相同,但不能创建符号方程。 例p50_1.m,6.2.6 符号运算,符号表达式,可定义矩阵及多种表达式,也有多种函数可对其进行操作。 例p50.m,2.符号常量 不含变量的符号表达式 如 f=sym(2*4-6) 可进行数值或符号运算,3.符号变量,当符号表达式中含有多于一个的变量时,只有一个变量是独立变量,其余的文字符作常量处理。若不指定哪个变量是独立变量,将按一定的规则确定: 除去i、j的小写字母,若无其它字母,x作独立变量。 有多个字符变量,选择在字母顺序中最接近x的字符; 若有相连的字符,选择在字母表中较后的字符. P52.m,二、符号表达式运算 1、提取分子和分母 p54.m numden 可以提取有理分式的分子和分母,还可以进行通分,合并同类项后再提取分子分母。对符号矩阵也可作同样操作。,2、代数运算 可进行符号表达式的加、减、乘、除和幂次。,symadd 符号加法 symsub 符号减法 symmul 符号乘法 symdiv 符号除法 例: p55.m,3、高级运算: 可进行符号表达式的复合、求逆函数、求前n-1项和等。 compose(f,g) 求复合函数f(g(x) 例 p57.m finverse(f) 求f(x)的逆函数g(x)满足g(f(x)=x symsum(f) 求表达式前n-1项的和 例 p58.m,4、函数变换 numeric( ) 把符号常数变换成一个数值 eval(f) 计算符号表达式的值 p=sym2poly(f) 符号表达式f转换成多项式p f=poly2sym(p) 多项式p转换成符号表达式f subs(f,old,new) 用new代替f中的old字符串 例p60.m,1、微分 diff 命令 例p61.m,三、微分和积分运算,2、积分 int 命令可求不定积分和定积分 例p62.m,四、符号表达式的简化 对一些冗长繁复的表达式可进行合并、展开、因式分解和简化等处理。 pretty 以类似数学课本上的形式来显示 collect 合并同类项,给出降幂排列形式 horner 把降幂排列的多项式变成嵌套形式 factor 因式分解 expand 展开表达式,给出降幂排列形式 simplify 表达式简化 simple 试用几种简化方式,选择最简形式,MATLAB中存在三种运算方式: 例p67.m 数值运算(MATLAB的浮点运算) 运算快,占用内存少;计算精度受字长影响,有舍入误差,多次运算造成累计误差。 符号运算 计算精度最高,但占用内存多。 可变精度运算 占用内存和计算精度受指定精度影响。,五、可变精度算术运算,digits 显示当前符号运算缺省精度 digits(n) 指定符号运算缺省精度位数为n(全局) vpa(f) 以缺省精度计算并显示符号表达式 vpa(f,n) 以指定的n位精度计算并显示符号表达式,并且不会影响全局的缺省精度,format long f1=1/2+2/3 %浮点运算 f2=sym(1/2+2/3) %符号运算 digits(5) %将改变全局的精度 f3=vpa(1/2+2/3) f4=vpa(1/2+2/3,10) %以指定精度计算 a=pi aa1=a+a+a+a+a aa2=sym(a+a+a+a+a) aa3=vpa(a+a+a+a+a),f1 = 1.16666666666667,f2 =7/6,f3 =1.1667,f4 =1.166666667,a = 3.14159265358979,aa1 = 15.70796326794897,aa2 =5*pi,aa3 =15.708,6.3 图形与可视化,MATLAB绘图功能强大,使用help GRAPH2d 或help GRAPH3d 可以得到所有画二(三)维图形的命令。,MATLAB中除了绘制基本的图形外,还可以制作动画、创建图形用户界面等。,示例: demo_graph2d.m 动画 p110.m 用户界面 first.fig,6.3.1二维图形的绘制 一、plot命令 plot是 MATLAB最基本的绘图命令,如果x和y是两个等长向量,那么plot(x,y)绘制了x和y之间关系的线性坐标图,自动给出坐标、边框。 基本格式: plot(x1,y1,s1,x2,y2,s2,),xi,yi第i条曲线的坐标值,可为向量或矩阵 si 决定第i条曲线颜色、线型及数据点的字符串 li2_1,plot(x,y)当x,y为向量要求长度相等,绘制以x为横坐标,y为纵坐标的二维图形。,x1=0:pi/2:2*pi,x2=0:pi/4:2*pi,x3=0:pi/8:2*pi,x4=0:pi/32:2*pi,b blue . point - solid g green o circle : dotted r red x x-mark -. dashdot c cyan + plus - dashed m magenta * star y yellow s square k black d diamond v triangle (down) triangle (up) triangle (right) p pentagram h hexagram,决定曲线颜色、线型及数据点的控制字符,颜色、线型及数据点的控制字符可以根据需要选用。 不设置,MATLAB会自动进行设置。,图形颜色控制符示例,图形数据点控制符示例,plot(x,y1,s,x,y2,d,x,y3,h,x,y4,p);,图形线型控制符示例,plot(x,y1,-,x,y2,-.,x,y3,:,x,y4,-);,控制符组合使用示例,二、图形修饰与控制,1、坐标轴调整 axis(xmin xmax ymin ymax) 图形的x轴范围限定在xmin xmax y轴范围限定在ymin ymax axis(控制字符串) 根据字符串控制图形 常用:square 将图形设置为正方形 equal 坐标轴的单位刻度设置为相等 例p79.m,用于对plot命令绘制的图形进行修饰和控制。,t=0:pi/16:3*pi; x=sin(t); subplot(2,1,1) plot(t,x,g-o) subplot(2,1,2) %axis(0 2*pi -2 2) %坐标范围控制不能放在plot命令之前 plot(t,x,r-.h) axis(0 3*pi -2 2)%坐标范围控制,plot(t,x,g-o),plot(t,x,r-.h);axis(0 3*pi -2 2),x=-1:0.01:1; y1=sqrt(1-x.2); y2=-sqrt(1-x.2); plot(x,y1,r,x,y2,r),axis(square),axis(equal),坐标刻度标示 set(gca,xtick,标示向量) set(gca,ytick,标示向量) 按照向量设置坐标的刻度标示 set(gca,xticklabel,字符串|字符串) set(gca,yticklabel,字符串|字符串) 按照字符串设置坐标的刻度标示 例p80.m,x=0:pi/16:2*pi; y=sin(x); plot(x,y); set(gca,xtick,0 1.4 3.14 5 6.28 ) set(gca,ytick,-1 -0.5 0 0.5 1),set(gca,xticklabel,0|pi/2|pi|3pi/2|2pi) set(gca,yticklabel,N|ZERO|P),set(gca,xtick,0 pi/2 pi 3*pi/2 2*pi),set(gca,ytick,-1 0 1),axis(0 2*pi -1 1),2、文字标示,title(字符串) 图形标题 xlabel(字符串) x轴标注 ylabel(字符串) y轴标注 text(x,y,字符串) 在坐标处标注说明文字 gtext(字符串) 用鼠标在特定处标注说明文字 p81.m,x=0:pi/16:2*pi; plot(x,sin(x) set(gca,xtick,0 pi/2 pi 3*pi/2 2*pi) set(gca,ytick,-1 0 1) set(gca,yticklabel,N|ZERO|P) xlabel(t(second) %x轴单位 ylabel(magnitude(V) %y轴单位 title(This is a example of P81) %图题 text(pi,sin(pi),leftarrow this is zero for pi) %在指定坐标加文字 grid on gtext(my figure) %用鼠标在点击处加文字,3、网格控制 grid on 在所画的图形中添加网格线 grid off 在所画的图形中去掉网格线 4、图例注解 legend(字符串1,字符串2,参数) 为区分各条曲线以字符串进行注解说明,参数确定注解在图形中的位置。 例p82.m,5、图形的保持,hold on 保持当前图形及轴系的所有特性 hold off 解除命令 例p83.m,可把一个绘图窗口分割成几个区域,分别绘图。 subplot(m,n,p) 将当前绘图窗口分割成m行n列区域,指定第p个编号区域为当前绘图区。 区域编号原则:“先上后下,先左后右”。 7、图形的填充 fill(x,y,color) 在由数据所构成的多边形内,用指定的颜色填充。若不封闭,由初始点和终点的连线封闭。 例p84.m,6、图形窗口的分割,subplot(2,2,1),subplot(2,2,2),subplot(2,2,3),subplot(2,2,4),%图形填充 x=0:pi/16:2*pi; y=sin(x); yy=cos(x);,subplot(2,1,1) fill(x,y,m),subplot(2,1,2) fill(y,yy,b),axis(square),三、特殊坐标二维图形,1、对数坐标图形 semilogx(x,y,参数) x轴取10为底的对数坐标,y轴为线性坐标的半对数坐标 semilogy(x,y,参数) y轴取10为底的对数坐标,x轴为线性坐标的半对数坐标 loglog(x,y,参数) x、y轴都取10为底的对数坐标的对数坐标 例p85.m,x=0:0.05:20;y=10.x; subplot(2,2,1) plot(x,y,k) title(linear Graph);grid subplot(2,2,2), semilogx(x,y,b) title(semilogx Graph);grid subplot(2,2,3) semilogy(x,y,m) title(semilogy Graph);grid subplot(2,2,4) loglog(x,y,r);grid title(loglog Graph),、极坐标图形 polar(theta,radius,参数) 绘制相角为theta,半径为radius的极坐标图形,t=0:0.01:2*pi; r=2*cos(2*(t-pi/8); polar(t,r),四、特殊二维图形,1、函数图形 fplot(函数运算式,xmin,xmax) 绘制函数在给定区间xmin,xmax内的变化图形,fplot(sin(3*x),0 4,rp-) grid,、饼图 在统计中常用来表示各因素所占百分比 pie(x,explode) 绘制x的每一元素占全部元素总和的百分比 其中:x可为向量或矩阵,explode为可选参数,其维数与相同,非零表示元素对应的扇行区与整个饼图分离,则不分离。,x=15 35 10 15 25; pie(x) pie(x,1 1 1 0 0) pie(1 2 3 4,North,South,East,West) y=0.1 0.3 pie(y),3、条形图,常用来表示一些数据的对比情况,可绘制垂直方向和水平方向两类条形图。数据可为向量和矩阵。,1)垂直方向条形图,x为向量 以各元素序号为横坐标,各元素值为纵坐标,以width为宽度(可选,缺省0.8,1重叠)绘垂直条形图,x为矩阵 bar(x,width)或 bar(x, width,group) 以各列序号为横坐标,每列在其列序号坐标上以列的各元素值为纵坐标,以width为宽度绘一组垂直方向条形图。 bar(x, width,stack) 以各列序号为横坐标,每列在其列序号坐标上以列的各元素的累加值为纵坐标,以width为宽度绘垂直方向的分组式条形图。 2)水平方向条形图 命令相应改为barh,用法与垂直方向条形图相同。 例p87.m,x=10,20,30;15,35,10;5,20,25; xx=1 2 3; figure(1) subplot(2,2,1),bar(x,group) %垂直方向条形图 subplot(2,2,2),bar(x,stack) subplot(2,2,3),barh(x,group) %水平方向条形图 subplot(2,2,4),barh(x,stack) figure(2) subplot(2,2,1),bar(xx,0.4,group) %垂直方向条形图 subplot(2,2,2),bar(xx,stack) subplot(2,2,3),barh(xx,1.2,group) %水平方向条形图 subplot(2,2,4),barh(xx,stack),4、向量图 1)原点向量图 例p88.m compass(x,y) compass(x) =compass(real(x),imag(x) 以复数坐标系的原点为起点,x为复数实部,y为复数虚部绘出带箭头的一组复数向量。,%原点向量图 x=-2+3*j,3+4*j,1-5*j,-2,2; y=real(x); z=imag(x); subplot(121),compass(y,z) subplot(122),compass(x),2)水平向量图 feather(x,y)或 feather(x) 以x向量序号为起点绘制向量图 例p89.m,%水平线向量图 x=-2+3*j 3+4*j 1-5*j -2; y=real(x);z=imag(x); subplot(121),feather(x) grid subplot(122),feather(y,z) grid,6.3.2 三维图形的绘制,三维数据可绘成线图(plot3),也可绘成网线图。 一、plot3命令 plot3绘图命令将二维图形函数plot的特性扩展到三维空间。基本格式: plot3(x1,y1,z1,s1,x2,y2,z2,s2,) xi,yi,zi第i条曲线的坐标值,可为向量或矩阵 si决定第i条曲线颜色、线型及数据点的字符串 数据为向量时,以xi,yi,zi为坐标绘制数据点,再连接得到空间曲线。数据为同维矩阵时,分别取出对应的列画出多条曲线。其他用法同二维。,% 3维图形 t=0:pi/50:10*pi; tt=0:pi/10:10*pi; subplot(1,2,1) h=plot3(sin(t),cos(t),t,r); set(h,linewidth,2) grid subplot(1,2,2) h=plot3(sin(2*tt),cos(2*tt),tt,k); set(h,linewidth,2),h=plot3(sin(t),cos(t),t,r.);,h=plot3(sin(tt),cos(tt),tt,k*-);,二、三维图形的修饰与控制 与二维图形类似,增加对轴的修饰与标记。 zlabel(字符串) z轴标注,t=0:pi/50:10*pi; subplot(1,2,1) plot3(sin(t),cos(t),t); subplot(1,2,2) h=plot3(sin(t),cos(t),t,r); set(h,linewidth,2) grid axis(-1 1 -1 1 0 10*pi) xlabel(x),ylabel(y),zlabel(t) title(三维图形修饰) % gtext(三维) %不支持三维图形,网格区域划分 meshgrid函数 X,Y=meshgrid(x,y) 将向量x(1*m),y(1*n)转化为矩阵 X(n*m),Y(n*m),三、特殊三维图形,1)三维网格曲面 绘图原理:用与坐标轴平行的直线将x-y平面划分成网格区域,计算网格点上的函数值(z值),得到三维空间数据点。将这些数据点分别用处于x-z和y-z平行面内的曲线连接,形成网格曲面。,生成三维网格曲面 mesh(X,Y,Z,C) 维数X(n*m),Y(n*m),Z(n*m),C(n*m) C是曲面颜色分布,缺省时C=Z mesh(Z,C) 缺省X,Y,取X=1:n,Y=1:m来自动产生网格划分 例91_1.m,x,y=meshgrid(1 2 3 4,5 6 7) z1=sqrt(x.2+y.2),x = 1 2 3 4 1 2 3 4 1 2 3 4 y = 1 1 1 1 2 2 2 2 3 3 3 3 z =1.4142 2.2361 3.1623 4.1231 2.2361 2.8284 3.6056 4.4721 3.1623 3.6056 4.2426 5.0000,h=mesh(x,y,z); set(h,linewidth,2),whos x y z Name Size x 3x4 y 3x4 z 3x4,2)其他形式的三维网格曲面,带等高线的三维网格曲面 meshc(X,Y,Z,C) 和 meshc(Z,C) 带底座的三维网格曲面 meshz(X,Y,Z,C) 和 meshz(Z,C) 填充颜色的三维网格曲面 surf(X,Y,Z,C) 和 surf(Z,C) 例92.m,x=-10:0.5:10; y=-8:0.5:8; X,Y=meshgrid(x,y); Z=sin(sqrt(X.2+Y.2)./sqrt(X.2+Y.2); subplot(2,2,1) mesh(X,Y,Z) subplot(2,2,2) meshc(X,Y,Z)%等高线 subplot(2,2,3) meshz(X,Y,Z)%底座 subplot(2,2,3) surf(X,Y,Z)%填充颜色,3)三维直方图 bar3(y,z,参数) 垂直的三维直方图 bar3h(y,z,参数) 水平的三维直方图 其中 z(n*m), x=1:n(自动), y(1*m)要求递增或递减,若缺省则y=1:m 参数可选:grouped(分组,可缺省), detached(分离), stacked(累加) 例93.m,6.3.3 图形用户界面设计,一、句柄图形对象 句柄图形(Handle Graphics)是一种面向对象的绘图系统,可直接创建线、面、文字以及交互式图形用户界面(如菜单、按钮和对话框等)。前述的MATLAB高层图形指令都是以句柄图形软件为基础写成的,所以句柄图形也称为低层图形指令。,1、句柄图形系统 句柄图形对象是图形系统中最基本、最底层的图元,在MATLAB中定义了10种图形对象: 根(Root) 图形窗口(Figures) 轴(Axes) 线(Line) 块(Patch) 面(Surface) 图像(Image) 字(Text) 菜单(Menus) 控件(Uicontrol) 关系如:,句柄图形树,返回,Root 根屏幕,Figure 图形窗,Uicontrol 界面控件,Axes 轴,Uimenu 界面菜单,Line 线,Surface 面,Patch 块,Image 象,Text 字,Light 光,对象的每个实例均对应唯一标识句柄(handle)用句柄可容易操纵图形对象的属性。根屏幕的句柄总是数字0,图形窗的句柄总是正整数,其余对象的句柄则是双精度浮点数(赋给变量,不要直接使用数值)。,2、创建图形对象,所有对象都由同名函数创建,返回相应的句柄,并置于适当的父代对象中。 3、图形对象句柄的获得和删除 gcf 返回当前图形窗口的句柄 gca 返回当前轴的句柄 gco 返回当前对象的句柄 findobj 查找具有某种属性的对象的句柄 delete 删除句柄对应的对象,4、图形对象的属性,当图形对象被创建时,该对象的属性是一组初始的默认值。 get(handle,属性名,属性值, .) 获得对象的属性 set(handle ,属性名,属性值, .) 设置对象的属性 get(handle) 获得对象的所有属性 set(handle) 得到对象的所有属性的各种内容,二、创建用户界面(Graphical User InterfaceGUI),利用可视化工具图形控制面板(guide)进行设计。,常用基本数学函数,基本的数据类型:,r,p,k=residue(num,den)的分解结果形式:,有理多项式,k(s)为常数项或纯微分项,例如已知传递函数,返回,被分解为,字符串转换函数,abs 字符串到ASCII码的转换 setstr ASCII码转换到字符串 int2str 整数转换成字符串 lower 字符串转换成小写 upper 字符串转换成大写 str2mat(x) 字符串转换成文本矩阵 num2str(b) 数字转换成字符串 str2num(c) 字符串转换成数字 fprintf 按照给定格式把文本写到文件或显示屏上 sprintf 按照给定格式,数字转换成字符串 sscanf 按照给定格式,数字转换成字符串,低级文件I/O命令,fclose 关闭文件 feof 测试文件结束 ferror 查询文件I/O的错误状态 fgetl 读文件的行,忽略回行符 fgets 读文件的行,包括回行符 fopen 打开文件 fprintf 按照格式要求把数据写到文件或屏幕上 fread 从文件中读二进制文件 frewind 返回到文件开始 fscanf 按照格式要求从文件中读数据 fseek 设置文件位置指示符 ftell 获取文件位置指示符 fwrite 把二进制数据写到文件里 返回,Arithmetic operators. plus - Plus + minus - Minus - mtimes - Matrix multiply * times - Array multip
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课件注会教学课件
- 课件模板颜色搭配
- 粘土手工植物课件
- 厂商施工安全培训
- 课件标题卡纸
- 药厂物料管理培训
- 提升连带技巧培训
- 乐理通考试题及答案
- 广东方剂学自考试题及答案
- 客服招聘考试题及答案
- 基孔肯雅热防护知识科普课件
- 中医优才考试试题及答案
- 2025年思想政治教育实践考试试题及答案解析
- 医学生的初心与使命
- 2026版高中汉水丑生生物-第二章第4节:蛋白质(录课用)
- 2025至2030年中国导热散热材料行业市场发展现状及投资方向研究报告
- 学长学姐给大一新生的讲座
- 智能会议系统音视频集成施工方案及措施
- Unit 1 Helping at home Part C英语教学课件
- 2025年人教部编版九年级道德与法治下册全册知识点
- 饲料厂制粒工培训
评论
0/150
提交评论