MATLABSimulink北航4副本

上传人:鲁** 文档编号:578383084 上传时间:2024-08-24 格式:PPT 页数:44 大小:4.72MB
返回 下载 相关 举报
MATLABSimulink北航4副本_第1页
第1页 / 共44页
MATLABSimulink北航4副本_第2页
第2页 / 共44页
MATLABSimulink北航4副本_第3页
第3页 / 共44页
MATLABSimulink北航4副本_第4页
第4页 / 共44页
MATLABSimulink北航4副本_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《MATLABSimulink北航4副本》由会员分享,可在线阅读,更多相关《MATLABSimulink北航4副本(44页珍藏版)》请在金锄头文库上搜索。

1、第一章 MATLAB编程基础新主楼C-5031MATLABMatrix LaboratoryMATLABMatrix Laboratory语言特点语言特点: :n1)演算纸式、科学工程计算、高级语言n2)以矩阵(或向量)为基本计算单元,强大的矩阵运算能力n3)内嵌常用运算函数及数值计算函数:n小数圆整化函数fix,round,ceil,floorn复数创建和操作complex(a,b),conj(z) ,real(z) ,imag(z)n数据处理(插值与拟合)、微/积分运算、代数/微分方程求解等n符号运算n4)强大的数据及图形处理能力n5)支持用户图形界面设计n6)支持外部接口设计半物理仿真应

2、用n数值计算n信号处理n系统识别n自动控制n振动理论n时序分析与建模n优化设计n神经网络控制n化学统计学n动态仿真系统n特殊函数和图形领域MATLAB表现出一般高级语言难以比拟的优势,并可以方便地用于几乎所有的科学和工程计算的各个方面可以说,MATLAB不仅是一种编程语言,而且在广义上是一种语言开发系统MATLABMATLAB语言是所有应用的基础语言是所有应用的基础主要内容n数据类型n矩阵操作n程序设计n图形可视化n图形用户界面开发n数值计算n参考文献:n1尹泽明,丁春利等.精通MATLAB6.5.清华大学出版社;n2罗华飞.MATLABGUI设计学习手记.北京航空航天大学出版社;n3高会生等

3、译.MATLAB原理与工程应用.电子工业出版社;1.1 MATLAB环境n目录和路径n命令窗口变量=表达式,;,,clc,工作空间n变量浏览器whos, clear all, save, 大小写nConmand History和实录diaryn桌面n程序编辑器变量工作空间n脚本n命令窗口输入并执行,所用变量均在基本工作空间中获取nM文件n使用MATLAB的Editor编制M文件。以.m格式存取,从工作空间创建并获取变量,工作空间中键入其名称即可运行n函数n关键字为function,以函数名.m文件格式存取,第一次执行时将生成内存代码,生成的变量存放在函数的工作区,需在MATLAB检索路径中(注

4、意:函数名称与文件名相同)1.2 基本程序元素n变量n局部变量:函数中设断点查询,脚本变量问题n全局变量:声明globaln永久变量:persistentn运算符运算符运算方式说 明运算符运算方式说明+、矩阵、数组运算加、减+、矩阵/数组运算加、减*、/矩阵运算乘、除. *数组运算数组乘矩阵运算左除,左边为除数. /数组运算数组左除 矩阵运算乘方.数组运算数组右除矩阵运算转置. 数组运算数组乘方:矩阵数组运算索引,用于增量操作. 数组运算数组转置变量区分字母的大小写变量必须以字母开头,之后可以是任意字母、数字或者下滑线变量中不能含有标点符号1.2 基本程序元素a=1,2,3a=123b=1;2

5、;3b=123c1=a(1)+a(2)+a(3)c1=6c2=a*bc2=14c3=b*ac3=123246369c4=c2.*c3c4=1428422856844284126c4=c2*c3c4=14284228568442841261.2 基本程序元素n关系运算符n逻辑运算符与函数关系运算符说 明小于=小于等于大于=大于等于= =等于 =不等于运算类型运算符与函数说 明元素运算&(and)逻辑与(or)逻辑或 (not)逻辑非xor逻辑异或捷径运算&对标量值的捷径与对标量值的捷径或x=(b&(a/b10)如果b为0,捷径运算符就不会计算(a/b10)的值了,也就避免了被0除的错误1.2 基

6、本程序元素n特殊运算符特殊运算符说 明 生成向量和矩阵 单元数组赋值( )算术运算中优先计算;封装函数参数=赋值语句共轭转置;两个之间为字符串%注释,分隔矩阵下标和函数参数:创建矢量、数组下标;循环迭代.域访问续行符;结束行;禁止显示结果;隔开声明函数句柄1.2 基本程序元素n常用函数1.2 基本程序元素n特殊表达式字符串计算表达式neval(expression)ny1,y2, =feval(fun_name,x1,xn)程序一:t=0:1:2*pi;y=eval(sin(t);plot(y)程序二:t=0:1:2*pi;y=feval(sin,t);plot(y)程序三:t=0:1:2*p

7、i;y=feval(sin,t);plot(y)1.3 矩阵n创建n直接排列在方括号内,行与行间用分号,列与列间用逗号或空格nA=(start:step:end) 或 linspace(n1,n2,n)定义等间距分布行向量n特殊:neye(m,n)nzeros(m,n)nones(m,n)nrand(m,n)nmagic(n) nV=a1,a2,a3 A=diag(V)n高维可借助矩阵连接方式或cat,repmat,reshape等命令nrepmat(num,m,n)clear xticx(1)=1;for i=1:10000 x(i+1)=2*x(i);endtocclear xticx=z

8、eros(1,10000);x(1)=1;for i=1:10000 x(i+1)=2*x(i);endtoc1.3 矩阵n连接nC=A B:横向连接矩阵A、B,要求具有相同行数nC=A;B:纵向连接矩阵A、B,要求具有相同列数nC=cat(DIM,A,B): DIM=2 列连接,DIM=1:行连接n重塑矩阵形状nB=reshape(A,m,n) 或 B=reshape(A,m,n) a=48 49 50; b=98 99 100; a;bans = 48 49 50 98 99 100 a=abc;cde; reshape(a,3,2)ans =adccbe reshape(a,2,2)?

9、Error using = reshapeTo RESHAPE the number of elements must not change.1.3 矩阵n操作nA(m,n):提取第m行,第n列元素。nA(:,n):提取第n列元素。nA(m,:):提取第m行元素。nA(m1:m2,n1:n2):提取第m1行到第m2行和第n1列到第n2列的所有元素(提取子块)。nA(:):得到一个长列矢量,该矢量的元素按矩阵的列进行排列。n矩阵扩展:矩阵扩展:如果在原矩阵中一个不存在的地址位置上设定一个数(赋值),则该矩阵会自动扩展行列数,并在该位置上添加这个数,而且在其他没有指定的位置补零。n消除子块:如果将

10、矩阵的子块赋值为空矩阵,则相当于消除了相应的矩阵子块。nm,n=size(A,x):返回矩阵的行列数m与n,当x=1,则只返回行数m,当x=2,则只返回列数n。nlength(A)=max(size(A):返回行数或列数的最大值。:返回行数或列数的最大值。nrank(A):求矩阵的秩。1.3 矩阵n运算n转置:对于实矩阵用()符号或(.)求转置结果是一样的;然而对于含复数的矩阵,则()将同时对复数进行共轭处理,而(.)则只是将其排列形式进行转置。n矩阵运算符为+;-;*;和/;.*;.;./;.n只有维数相同的矩阵才能进行加减运算。n只有当两个矩阵中前一个矩阵的列数和后一个矩阵的行数相同时,才

11、可以进行乘法运算nab运算等效于求运算等效于求a*x=b的解;而的解;而a/b等效于求等效于求x*b=a的解。的解。n只有方阵才可以求幂。n点运算是两个维数相同矩阵对应元素之间的运算,在有的教材中也定义为数组运算。n矩阵求逆:inv(A)n求行列式:det(A)1.4 数据类型1.4 数据类型n函数数柄n特殊的数据结构,提供了间接调用函数方法n记录了函数的详细信息(如路径、函数名、类型以及可能存在的重载方法),立即执行不进行文件搜索,反复调用一个函数时使用可提高执行效率n用来标识子函数,并作为主函数的输出参数 例:主函数中返回子函数句柄functionout=myfunction(select

12、)switchselectcasecaselout=fun1;casecase2out=fun2;otherwiseout=endfunctiona=fun1(b,c)functiond=fun1(e,f)数据类型描述举例function handle函数句柄,指向一个函数。能传递给其他函数sinstr2func1.4 数据类型数据类型描述举例int8,uint8等带符号和无符号整数数组。存储空间比单精度或双精度数小。除int64和uint64外,其余都可用于数学运算flag=uint16(0);a=uint8(3)+uint8(10);b=int8(1:10)single单精度数数组。存储空

13、间比双精度小,数的精度和范围也比双精度小single(5*1038)double双精度数组。默认的数字类型默认的数字类型。二维数组可为稀疏数组3*103005+6ilogical逻辑值数组。逻辑值0或1分别代表真和假。二维数组可为稀疏数组magic(4) 71.4 数据类型n字符数组n用创建二维字符数组,必须保证每行有相同长度,可在短的字符串后加空格n用char函数创建二维字符数组,函数会自动添加空格a=abcd;efgb=char(abcd,efg)b(1)?b(5)?1.4 数据类型n常用字符串操作函数nstrcmp 和 isequal 函数调用格式函数说明strcatt = strcat

14、 (s1,s2,s3.)依次横向横向链接字符数组s1,s2,s3strvcatS = strvcat (t1, t2,t3)依次纵向向链接字符数组t1,t2,t3Strcat与的不同1)先将每个字符串尾部空格去掉2)含有字符串单元时不改变单元数组的维数1)比较字符串与字符单元,字符串与每个单元项比较,返回逻辑矩阵;2)比较两个字符单元,多维字符单元必须同维strcmp(ab;cd),cd)ans=01strcat(a,b,c)ans=acbca,b,cans=abc1.4 数据类型n常用字符串操作函数函数调用格式函数说明num2strstr = num2str(A)str = num2str(

15、A,precision)str = num2str(A,format)数字转化为字符串。Precision为最大精度,默认为五位精度,format为格式字符串str2numx = str2num(str)将字符串或字符数组转换为数字或矩阵;4位精度num2str(pi,%7.3f)ans=3.142str2num(3.14159e0)ans=3.1416str2num(12;34)ans=1234内容索引内容索引:左边=单元下标在花括号内右边=指定单元内容单元索引单元索引:左边=单元下标括在括号内右边=单元内容放在花括号内1.4 数据类型n单元数组C=cell(1,3);CC=C(1)=daf

16、ei,liuqin;C(2)=B;A;C(3)=889998;988999;CC=1x2cell2x1char2x3doublecell数据类型描述举例cell array单元数组。各单元可存储不同维数、不同数据类型的数组,通过矩阵索引操作获取数据a1,1=Reda1,2=magic(4)celldisp(a)celldisp(C)C11=dafeiC12=liuqinC2=BAC3=999889991.4 数据类型n字符串单元nc=cellstr(S):将字符数组S的每一行每一行变为字符串单元c的一个单独单元,并去掉尾部空格并去掉尾部空格week=Sunday;Monday;Tuesday;

17、a=cellstr(week)a=SundayMondayTuesday1.4 数据类型n结构数组:用字段来容纳数组results.name=dafei;results.rank=2;results.score=889998;resultsresults=name:dafeirank:2score:889998fieldnames(results)ans=namerankscores=struct(field1,value1,field2value2,)数据类型描述举例structure结构数组。利用一个字段域来容纳数据。每个域可保存不同维数不同类型数组a.day=12a.color=Redr

18、esults(2).name=liuqin;results(2).rank=2;results(2).score=606060;1.5 程序设计n程序类型n1、脚本文件n在命令窗口中输入并执行,所用变量均在工作空间中获取,不需要输入输出参数的调用,退出MATLAB后就释放了n2、程序文件(M文件)n使用MATLAB的Editor编制M文件。以.m格式进行存取,包含一连串MATLAB指令和必要的注解,从工作空间创建并获取变量(即处理的数据为命令窗口中的数据,没有输入参数,也不会返回参数),运行时只需在工作空间中键入其名称即可。n3、函数文件n关键字为function,函数第一次执行时将生成内存代

19、码,生成的变量存放在函数的工作区。需要注意函数文件的放置位置,一般自己的函数文件放在当前目录;如果对一个专题有了足够多的函数,可如果对一个专题有了足够多的函数,可以生成一个工具箱,以生成一个工具箱,放在一个固定的目录下,并在MATLAB中加入这个目录路径即可。1.5 程序设计n程序流程控制n调试说明清除命令:清除workspace中的变量和图形(clear,close)定义变量:包括全局变量的声明及参数值的设定逐行执行命令:指MATLAB提供的运算指令或工具箱提供的专用命令控制循环:包含for,ifthen,switch,while等语句逐行执行命令end绘图命令:将运算结果绘制出来1.5 程

20、序设计n函数文件程序编辑nEditor/Debugger程序编辑环境中,文字的不同颜色显示表明文字的不同属性。绿色:注解;黑色:程序主体;红色:属性值的设定;蓝色:控制流程。n子程序与主程序之间的数据是通过参数进行传递的,子程序应用主程序传递来的参数进行计算后,将结果返回主程序。n常用编程命令:npause:停止文件执行直至有键按下。pause(n)将使程序暂停n秒nechoon/off:控制是否在屏幕上显示程序内容nkeyboard:停止程序执行,把控制权交给键盘。输入return并回车后继续程序执行nx=input(prompt):把输入的字符串作为提示符,等待使用者输入一个响应,然后把它

21、赋值到x1.5 程序设计n函数参数nn=nargin(fun):返回函数fun定义的输入参数个数nn=nargout(fun):返回函数fun定义的输出参数个数nvarargin和varargout:传送或返回不定数目的参数n如果在函数声明行将varargin作为最后一个输入参数,则函数在调用时可接受任意个变量。functionc=myfun(a,b)ifnargin2error(toomanyinputarguments.);elsec=a+b;end1.5 程序设计n函数参数nvarargin和varargout:传送或返回不定数目的参数n如果在函数声明行将varargin作为最后一个输入

22、参数,则函数在调用时可接受任意个变量组成一个单元数组,varargin为单元数组名。该单元数组第i个单元就是从varargin位置算起的第i个输入参数nVarargout也是一个预定义的单元数组,第i个单元是从varargout位置算起的第i个输出参数functionc=myfun(x,varargin)如果调用方式为mafun(a,b,c)则varargin是长度为2的单元数组并且varargin1=b,varargin2=c。funtionvarargout=myfun(x,y)ab=myfun(c,d):varargout1的值赋给avarargout2的值赋给b。给定输出参数:func

23、tionzvarargout=myfun(x,y)1.5 程序设计n函数参数nnargchk和nargoutchkn函数体内使用,分别用于验证输入参数和输出参数的个数是否在规定的范围内。它们经常与error、nargin、和nargout函数一起用。msg=nargchk(minargs,maxargs,numargs)或msg=nargchk(minargs,maxargs,numargs,string)Functionc=myfun(a,varargin)Error(nargchk(2,3,nargin)在命令行输入:myfun(5)结果为:?Errorusing=myfunNotenou

24、ghinputarguments.1.6 图形可视化n绘图函数n图形管理n曲线/曲面图生成n注释及图形特性管理类生 成 类注释和特性类FigureSubplotZoomHoldplotpolarplotyyfill特殊功能函数stairs, stem, barsemilogx, semilogy, loglogxlabel, ylabel, titletext, legendbox, gridsetaxis, axis equal, axis offclabel3D3D3D viewrotate3dplot3surf, surfcwaterfallmesh,meshc,meshz contou

25、r,contours,contourfcylinderzlabel,text3colorbar, colormapshading1.4 绘图简介n基本二维绘图命令n选项参数option=LineStyleMarkerColor定义了图形曲线的颜颜色、线型及标示符号色、线型及标示符号,如:bd表示用蓝色虚线连接蓝色菱形点形式绘制数据plot(x1,y1,option1,x2,y2,option2,)1.4 绘图简介nLineWidth、MarkerEdgeColor、MarkerFaceColor、MarkerSizenColororder、LineStyleOrder:设置默认线条颜色和类型n

26、例:绘制0,2pi区间一条正弦曲线,采用线条宽度为2的蓝色点划线,标记为边缘红色填充绿色,大小为12像素的五星plot(x1,y1,option1,x2,y2,option2,) t=0:0.2:2*pi; y=sin(t); plot(t,y,-.pb,LineWidth,2,MarkerSize,12,.MarkerEdgeColor,r,MarkerFaceColor,g)1.4 绘图简介n简单的图形控制命令包括:n(1)clc:清除命令窗口。n(2)grid:自动在所画出的图形坐标中添加栅格,注意用在plot之后。n(3)holdon:允许在同一坐标系下绘制不同的图形。n(4)hold

27、off:释放当前图形窗口,绘制的下一幅图形将作为当前图形,即覆盖原来的图形,这是MATLAB的缺省状态。n(5)选择图像:figure(1);figure(2);figure(n)。打开不同的图形窗口,以便绘制不同的图形。MATLAB在缺省状态下,只打开一个图形窗口。n(6)subplot(m,n,p)或subplot(mnp):分割图形显示窗口。将图形窗口分成m行n列的子窗口,序号为p的子窗口为当前窗口。子窗口的编号由上至下,由左至右。1.4 绘图简介n设定轴的范围:naxis(xminxmaxyminymax)naxis(equal):将x坐标轴和y坐标轴的单位刻度大小调整为一样。n文字标

28、示:ntext(x,y,字符串):在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串。ngtext(字符串):利用鼠标在图形的某一位置标示字符串。ntitle(字符串):在所画图形的最上端显示说明该图形标题的字符串。nxlabel(字符串),ylabel(字符串):设置x,y坐标轴的名称。n输入特殊的文字需要用反斜杠()开头。nlegend(字符串1,字符串2,字符串n)nfill(x,y,color)1.4 绘图简介n绘图工具nbox,grid,axis,pan,zoon,datacursormoden窗口介绍、copy subplot 221 plot(sin(0:0.1:1.2*

29、pi) box off subplot 222 plot(sin(0:0.1:1.2*pi) grid on subplot(2,2,3 4) plot(cos(0:0.1:2*pi) grid minorlegend(余弦)1.4 绘图简介n特殊绘图nsemilogx:绘制以x轴为对数坐标(以10为底),y轴为线性坐标的半对数坐标图形。nsemilogy:绘制以y轴为对数坐标(以10为底),x轴为线性坐标的半对数坐标图形。n应用型绘图指令:可用于数值统计分析或离散数据处理nbax(x,y);hist(y,x)nstairs(x,y);stem(x,y)1.4 绘图简介n特殊绘图nsemilo

30、gx:绘制以x轴为对数坐标(以10为底),y轴为线性坐标的半对数坐标图形。nsemilogy:绘制以y轴为对数坐标(以10为底),x轴为线性坐标的半对数坐标图形。n应用型绘图指令:可用于数值统计分析或离散数据处理nbax(x,y);hist(y,x)nstairs(x,y);stem(x,y)1.4 绘图简介%examclcclear%绘制对应于每个输入x的输出y的高度条形图subplot(221)x=12345678910;y=56348110356;bar(x,y)%绘制x1在以y1为中心的区间中分布的个数条形图subplot(222)x1=randn(1,1000);%生成1000个各随

31、机数y1=-3:0.1:3;hist(x1,y1)%绘制y2对应于x2的梯形图subplot(223)x2=0:0.1:10;y2=1./(x2.3-2.*x2+4);stairs(x2,y2)%绘制y3对应于x3的散点图subplot(224)x3=0:0.1:10;y3=1./(x2.3-2.*x2+4);stem(x3,y3)1.4 绘图简介n三维绘图nPlot3(x1,y1,z1,S1,x2,y2,z2,S2,) t=0:pi/50:10*pi; plot3(t.*sin(t),t.*cos(t),t) text(0,0,0,Origin) title(Helix),xlabel(si

32、n(t),ylabel(cos(t),zlabel(t) grid1.4 绘图简介n网格图X,Y,Z=peaks(30);mesh(X,Y,Z)grid,xlabel(x-axis),ylabel(y-axis),zlabel(z-axis)title(meshofpeaks)1.4 绘图简介n曲面图X,Y,Z=peaks(30);surf(X,Y,Z)grid,xlabel(x-axis),ylabel(y-axis),zlabel(z-axis)title(surfofpeaks)练习题n将y按升序排列,然后根据向量y中新的元素顺序重新排列向量zny=-1,6,15,-7,31,2,-4,

33、-5nz=10,20,30,40,50,60,70,80;n进行下列计算,给出不使用for和while等循环语句的计算方法;n1 . n2.求出y=x*sin(x) 在0x100的每个峰值,并绘制曲线练习题n1:将y按升序排列,然后根据向量y中新的元素顺序重新排列向量zny=-1,6,15,-7,31,2,-4,-5nz=10,20,30,40,50,60,70,80;nMATLAB语句:nynew,indx=sort(y);nznew=z(indx)n执行结果:nynew=-7 -5 -4 -1 2 6 15 31nindx=4 8 7 1 6 2 3 5nznew=40 80 70 10 60 20 30 50

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号