收藏 分享(赏)

第一章MATLAB基础.ppt

上传人:Facebook 文档编号:9689549 上传时间:2019-08-24 格式:PPT 页数:102 大小:2.81MB
下载 相关 举报
第一章MATLAB基础.ppt_第1页
第1页 / 共102页
第一章MATLAB基础.ppt_第2页
第2页 / 共102页
第一章MATLAB基础.ppt_第3页
第3页 / 共102页
第一章MATLAB基础.ppt_第4页
第4页 / 共102页
第一章MATLAB基础.ppt_第5页
第5页 / 共102页
点击查看更多>>
资源描述

1、2019/8/24,1,MATLAB在通信中的应用,主讲:侯艳芳 ,2019/8/24,2,课程介绍,定位:专业选修课 目标:了解MATLABSimulink ,熟练掌握简单编程,结合所学通信工程专业知识,能够使用MATLAB对通信系统进行仿真,加深理解。 考核:待定,2019/8/24,MATLAB在通信中的应用,3,第一讲 MATLAB初步认识,1.1.1 MATLAB的发展MATLAB语言是由美国的Clever Moler博士于1967年开发的;设计者的初衷是为解决“线性代数”课程的矩阵运算问题;取名MATLAB即Matrix Laboratory 矩阵实验室的意思;MATLAB以商品形

2、式出现后的短短几年,就以其良好的开放性和运行的可靠性,成功地应用于各工程学科的研究领域。,2019/8/24,MATLAB在通信中的应用,4,MATLAB版本的发展,1984年,MATLAB第1版(DOS版) 1992年,MATLAB 4.0版 1994年,MATLAB 4.2版 1997年,MATLAB 5.0版 1999年,MATLAB 5.3版 2000年,MATLAB 6.0版 2001年,MATLAB 6.1版 2002年,MATLAB 6.5版 2004年,MATLAB 7.0版,第一讲 MATLAB初步认识,2019/8/24,MATLAB在通信中的应用,5,1.1.2 MATL

3、AB的主要特点 1简单易学 与C语言几乎一致2、编程简洁、效率高语言规则不强,无需编译3、强大而简单的绘图功能二、三维绘图,直观展示结果,第一讲 MATLAB初步认识,2019/8/24,MATLAB在通信中的应用,6,4、扩展性强,MATLAB主工具箱 符号数学工具箱 SIMULINK仿真工具箱 控制系统工具箱 信号处理工具箱 图象处理工具箱 通信工具箱 系统辨识工具箱 神经元网络工具箱 金融工具箱,第一讲 MATLAB初步认识,2019/8/24,MATLAB在通信中的应用,7,1信号处理工具箱(SignalProcessingToolbox),包括1) 数字和模拟滤波器设计、应用及仿真;

4、2) 谱分析和估计;3) FFT变换;4) DCT变换。2通信工具箱(CommunicationToolbox),包括:1) 信号编码;2) 调制解调;3) 滤波器和均衡器设计;4) 通道模型;5) 多路访问;6) 错误控制编码。,第一讲 MATLAB初步认识,2019/8/24,MATLAB在通信中的应用,8,1.1.3 MATLAB应用领域仿真和建模 实时仿真 自动控制 信号处理与通信 数据分析、科学计算 算法开发 图形、可视化研究 独立应用开发 其他领域,第一讲 MATLAB初步认识,2019/8/24,MATLAB在通信中的应用,9,第二讲 MATLAB的基础准备及入门,一、MATLA

5、B的安装 二、目录结构与环境变量 三、MATLAB工作环境 四、命令窗口(Command Window) 五、历史命令窗口(Command History) 六、工作空间窗口(Workspace) 七、MATLAB的程序编辑器 八、保存和检索数据 九、帮助与在线查询,2019/8/24,MATLAB在通信中的应用,10,第二讲 MATLAB的基础准备及入门,一、MATLAB的安装,A碟:Matlab主程序及工具箱扩展包;B碟:帮助文件。建议安装双碟版的Matlab 6.1、6.5或7.0,并且采用完全安装。完全安装需要大约1.4G的硬盘空间。,2019/8/24,MATLAB在通信中的应用,1

6、1,第二讲 MATLAB的基础准备及入门,二、Matlab的目录结构,1、MATLAB的目录结构。正确安装MATLAB后,在硬盘上生成一个文件夹,如C:MATLAB,在这个根目录下有:bin externdemos helpjava rtwsimulink stateflowtoolbox sysja uninstallwork,2019/8/24,MATLAB在通信中的应用,12,第二讲 MATLAB的基础准备及入门,二、Matlab的目录结构,(1) C:matlabbin该目录下有建立MEX文件所需的批处理文件和必需的二进制文件。 (2) C: matlabextern包含MATLAB与

7、C或FORTRAN语言交互所需的函数定义和链接库。 (3) C:matlabtoolbox工具箱目录,该目录包含以下子目录:matlab MATLAB核心工具包simulink Simulink函数和工具,2019/8/24,MATLAB在通信中的应用,13,第二讲 MATLAB的基础准备及入门,二、Matlab的目录结构,(4) C:matlabwork这是MATLAB的工作空间,在启动系统时直接进入该目录用以保存用户自己的.mat或.m文件。作为MATLAB的高级用户,应对MATLAB安装后的目录有深入的了解。,2019/8/24,MATLAB在通信中的应用,14,第二讲 MATLAB的基

8、础准备及入门,三、MATLAB的工作环境,Command Window 命令窗口,Workspace 工作空间窗口 或 Current Directory 当前目录窗口,Command History 命令历史窗口,2019/8/24,MATLAB在通信中的应用,15,第二讲 MATLAB的基础准备及入门,四、命令窗口的菜单,Set Path 因机房计算机安装了硬盘还原卡,所以上机做实验时,每位同学在E盘下建立一个目录(英文),然后将该目录加入到Matlab搜索路径中,并将其设置为当前目录(Current Directory)。,2019/8/24,MATLAB在通信中的应用,16,第二讲 M

9、ATLAB的基础准备及入门,四、命令窗口的命令,命令窗口是MATLAB的主要交互窗口,MATLAB命令窗口中的“”为命令提示符,表示MATLAB正在处于准备状态。,2019/8/24,MATLAB在通信中的应用,17,第二讲 MATLAB的基础准备及入门,四、命令窗口的命令,1窗口命令 clf:清除当前Figure窗口里的所有非隐藏图形对象。 Close:关闭当前的Figure窗口。 Close all:关闭所有的Figure窗口。 Clc:清除命令窗口里的内容,光标回到窗口的左上角,2019/8/24,MATLAB在通信中的应用,18,第二讲 MATLAB的基础准备及入门,五、历史命令窗口(

10、Command History),在历史窗口中记录着用户在MATLAB命令窗中所输入过的全部命令,在这个窗口中可以实现几个主要的功能是: 1、单行或多行命令的复制在命令历史窗口用鼠标选定所要拷贝的命令,用右键弹出上下文菜单,选中Copy项,然后可以用Ctrl+V将其复制到命令窗口或任何地方。 2、单行命令的运行选中单行命令,用右键弹出上下文菜单,选中Evaluate Selection,即会在命令窗口运行该行命令,也可直接双击该行命令,随即在命令窗口看到运行结果。 3、多行命令的运行方法同于单行命令:选中多行命令,用右键弹出上下文菜单,选中Evaluate Selection,即会在命令窗口运

11、行该多行命令。,2019/8/24,MATLAB在通信中的应用,19,第二讲 MATLAB的基础准备及入门,五、历史命令窗口(Command History),4、把多行命令写成M文件选中多行命令,用右键弹出上下文菜单,选中Create M-File菜单项,就引出M文件编辑器,并将多行文本拷入,再利用M文件编辑器的操作保存即可。5、命令窗口实录命令diary在MATLAB运行过程中如果希望将当前命令窗口中所有命令(包括结果)保存起来,可以用diary命令。 (1)在命令窗口运行命令 diary my_diary,全部命令记录在内存中; (2)运行命令 diary off后,内存中的全部内容记录

12、在名为my_diary的日志文件中。(注意:日志文件可以带扩展名.txt,也可以不带扩展名),2019/8/24,MATLAB在通信中的应用,20,第二讲 MATLAB的基础准备及入门,六、工作空间窗口(Workspace),工作空间窗口又称内存浏览器,在其中保存着用户所执行命令或程序的中间变量和结果。,2019/8/24,MATLAB在通信中的应用,21,第二讲 MATLAB的基础准备及入门,七、MATLAB的程序编辑器,进入程序编辑器 在菜单File中选New(M-File)或Open项; 直接利用按钮工具栏中的按钮New或Open; 在命令窗口中输入Edit命令。MATLAB 的这一编辑

13、器主要用来编辑M文件。当一组命令通过改变某个变量的值就可以反复使用去解决不同的问题时,可以利用M文件编辑器。,2019/8/24,MATLAB在通信中的应用,22,第二讲 MATLAB的基础准备及入门,七、MATLAB的程序编辑器,例1:画出指数衰减曲线y1=exp(-t/3)*sin(3*t)和它的包络y2=exp(-t/3),t的取值范围是(0,4pi)。%example1.mt=0:pi/100:4*pi;y2=exp(-t/3);y1=y2.*sin(3*t);plot(t,y1,-r,t,y2,:b,t,-y2,:b)存为example1.m,然后选中 下拉菜单Debug|Run运行

14、得到右图。,2019/8/24,MATLAB在通信中的应用,23,第二讲 MATLAB的基础准备及入门,八、数组编辑器(Array Editor),当输入大型数组时建议使用数组编辑器。 在命令窗口中给一个变量赋为“空”阵; 在工作空间浏览器中双击该变量,打开数组编辑器; 在左上方的行(size)、列(by)数栏中填写待建数组的大小,于是在编辑窗口出现数组元素格;(7.0版本中自动根据元素个数确定维数。) 逐格填写元素值。与此同时在内存浏览器中的相应变量已经改变。,2019/8/24,MATLAB在通信中的应用,24,第二讲 MATLAB的基础准备及入门,八、保存和检索数据,当你在工作窗中做了一

15、些运算之后,需要暂时休息一下,希望将所作的工作保存,以便以后接着做下去,可以点击File|Save Workspace As项,会弹出一个对话框,选择保存路径并键入文件名,按“保存”键。当再次开始工作时,用File|Load workspace 或File|Import Data再把该文件装入,原来定义的变量又可以使用了。 例1:建立一个工作文件(.mat) 在工作窗中键入 a=1 2 3;4 5 6;7 8 9 b=1;2;3 a*b 按Enter,则计算出结果 ans=14;32;50在File菜单中点取Save workspace将工作窗中内容存为file1.mat,系统默认保存路径为M

16、ATLABwork,2019/8/24,MATLAB在通信中的应用,25,第二讲 MATLAB的基础准备及入门,九、保存和检索数据,重新启动MATLAB,键入a,回车,系统回复 ? Undefined function or variable a.(表明此时系统中变量a没有定义) 在命令窗口键入Load file1.mat将文件装入,再键入a,回车,系统将恢复。 a= 1 2 3 4 5 6 7 8 9键入who,显示出当前工作 环境下的变量名。 键入whos,显示出当前工作 环境下所有变量的具体信息。,2019/8/24,MATLAB在通信中的应用,26,第二讲 MATLAB的基础准备及入门

17、,十、帮助与在线查询,1、查找Matlab基本函数的信息(Elementary math functions)help elfun 2、查找某个具体函数的信息及使用方法:help 函数名 例:查找有关正弦函数的信息: help sin3、浏览器界面的帮助信息 helpwin显示帮助总览。在此界面下可以查找所有基本函数和专用函数的详细信息。,2019/8/24,MATLAB在通信中的应用,27,第三讲 MATLAB的基本运算,一、数组与矩阵的创建 二、矩阵运算与数组运算 三、基本元素群函数,2019/8/24,MATLAB在通信中的应用,28,1、变量命名A变量名必须是不含空格的单个单词;B变量

18、名区分大小写;C. 变量名最多不超过63个字符;D变量名必须以字母打头,之后可以是任意字母、 数字或下划线,变量名中不允许使用标点符号。E.标准的函数名及命令名必须用小写字母。,第三讲 MATLAB的基本运算,2019/8/24,MATLAB在通信中的应用,29,2、赋值语句 (1) 变量=表达式 (2) 表达式 其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。默认变量:ans 注释语句:%开始 MATLAB特别标点: ;,第三讲 MATLAB的基本运算,2019/8/24,MATLAB在通信中的应用,30,一、数组与矩阵的创建,1、生成数组的函数“:”的用法 例1:av=1

19、:10 %产生一个从 1 到10的数组,间隔为 1 (行向量) av=1,2,3,4,5,6,7,8,9,10 例2:aw=1:2:10 %产生一个从 1 到10 之间的数组,间隔为 2 aw=1,3,5,7,9 例3:as=0:pi/40:4*pi as = 0 0.7854 1.5708 2.3562 3.1416 3.9270 4.7124 5.4978 6.2832 例4:al=10:-2:0 al = 10 8 6 4 2 0,第三讲 MATLAB的基本运算,2019/8/24,MATLAB在通信中的应用,31,一、数组与矩阵的创建,1、生成数组的函数常用数组函数 例1:aj=lin

20、space(0,1,10) %利用线性等分指令生成向量 (间隔1/9) aj = 0 0.1111 0.2222 0.3333 0.4444 0.5556 0.6667 0.7778 0.8889 1.0000 (0 1/9 2/9 3/9 1 ) 例2:ap=rand(1,5) %产生15的随机数矩阵。范围(0,1),均值:0.5 ap = 0.0153 0.7468 0.4451 0.9318 0.4660,第三讲 MATLAB的基本运算,在MATLAB中,变量的元素(即矩阵元)用圆括号“( )”中的数字(也称为下标),2019/8/24,MATLAB在通信中的应用,32,一、数组与矩阵的

21、创建,2、生成矩阵的常用函数eye生成单位矩阵 例1: eye(n) %生成n 维的单位阵 eye(m,n) %生成mn 维的单位阵 eye(size(A) %生成与 A同维的单位阵 ones 生成全1阵(常用于大型程序中预先定维)zeros 生成全0阵(常用于大型程序中预先定维)rand 生成均匀随机阵(范围(0,1),均值:0.5)randn 生成正态随机阵(均值:0.5;方差:1),第三讲 MATLAB的基本运算,2019/8/24,MATLAB在通信中的应用,33,第三讲 MATLAB的基本运算,二、矩阵运算与数组运算,1、矩阵运算A+B 加法A*B 乘法 k*A 数乘矩阵 A A的共

22、轭转置conj(A) 或 conj(A) A的转置 (conjugate:共轭)An A(方阵)的n次幂inv(A) A的逆阵 (inverse)A/B A右除B(A*inv(B))BA A左除B(inv(B)*A),2019/8/24,MATLAB在通信中的应用,34,第三讲 MATLAB的基本运算,二、矩阵运算与数组运算,2、元素群运算(“” 运算符)k.*A 数乘矩阵(k*A)A.*B 对应各元素相乘 A.n 矩阵A各元素的n次幂A./B A对应各元素右除BB.A A对应各元素左除B(A./B)两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。,2019/8/24,

23、MATLAB在通信中的应用,35,第三讲 MATLAB的基本运算,二、矩阵运算与数组运算,3、关系运算与逻辑运算MATLAB提供了6种关系运算符:(大于)、=(大于或等于)、=(等于)、=(不等于)。MATLAB提供了3种逻辑运算符:&(与)、|(或)和(非)。 它们的含义不难理解,但要注意其书写方法与数学中的不等式符号不尽相同。,2019/8/24,MATLAB在通信中的应用,36,第三讲 MATLAB的基本运算,三、函数,2019/8/24,MATLAB在通信中的应用,37,第三讲 MATLAB的基本运算,四、向量与矩阵处理,1、标识与子矩阵的提取 A(i,j)表示矩阵A的第i行、第j列交

24、叉点处的元素, i,j是两个整数。 A(u,v)提取A的子矩阵,u,v是两个向量,分别指定行与列。 向量标识:A(L1,:) A(:,L2) A(L1,L2),A(L1,:) 表示提取A的L1指定的行、所有列构成子矩阵;A(:,L2) 表示提取A的所有行,L2指定的列构成子矩阵;A(L1,L2) 表示提取A的L1指定的行,L2指定的列构成子矩阵。例:A=1,2,3,4,5;6,7,8,9,10;11,12,13,14,15; A(1,3,:) A(:,2,4,5) A(:,1:3) A(1,2,1,3,5),2019/8/24,MATLAB在通信中的应用,38,第三讲 MATLAB的基本运算,

25、四、向量与矩阵处理,1、标识与子矩阵的提取 *例:将随机向量中满足不超过0.5的元素提取出来。,x=rand(1,10) L=(x=0.5) y=x(L),2019/8/24,MATLAB在通信中的应用,39,第三讲 MATLAB的基本运算,四、向量与矩阵处理,2、空阵用于缩维 例:提取A 的1,3,5列。 A=1,2,3,4,5,6;7,8,9,10,11,12;13,14,15,16,17,18; A1=A(:,1,3,5) % 方法一 A1 =1 3 57 9 1113 15 17 A(:,2,4)= % 方法二:利用空阵 A =1 3 57 9 1113 15 17,2019/8/24

26、,MATLAB在通信中的应用,40,第三讲 MATLAB的基本运算,四、向量与矩阵处理,3、特殊矩阵的提取fliplr(A) 矩阵A左右翻转flipud(A) 矩阵A上下翻转v=diag(A) 提取A的对角线上的元素构造一个列向量vM=diag(v) 用向量v的元素作对角元素,构造一个对角矩阵ML=tril(A) 取矩阵A的左下三角部分(基于主对角线),其它元素为零U=triu(A) 取矩阵A的右上三角部分(基于主对角线),其它元素为零rot90(A) 矩阵A逆时针旋转90例:A=round(rand(4,5)*10),2019/8/24,MATLAB在通信中的应用,41,第四讲 MATLAB

27、程序设计,一、M文件 二、控制语句 三、函数的调用,2019/8/24,MATLAB在通信中的应用,42,1 M文件 1.1 M文件概述 用MATLAB语言编写的程序,称为M文件。 M文件可以根据调用方式的不同分为两类: 命令文件(Script File)函数文件(Function File)扩展名为:.m,第四讲 MATLAB程序设计,2019/8/24,MATLAB在通信中的应用,43,例-1 分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度c。 程序1: 首先建立命令文件并以文件名f2c.m存盘。 clear; %清除工作空间中的变量 f=input(Input Fahrenhei

28、t temperature:); c=5*(f-32)/9 然后在MATLAB的命令窗口中输入f2c,Input Fahrenheit temperature:73 c =22.7778,第四讲 MATLAB程序设计,2019/8/24,MATLAB在通信中的应用,44,程序2: 首先建立函数文件f2c.m。 function c=f2c(f) c=5*(f-32)/9 然后在MATLAB的命令窗口调用该函数文件。 clear; y=input(Input Fahrenheit temperature:); x=f2c(y) 输出情况为: Input Fahrenheit temperatur

29、e:70 c =21.1111 x =21.1111,第四讲 MATLAB程序设计,2019/8/24,MATLAB在通信中的应用,45,不同点: 命令文件:没有输入参数,不返回输出参数函数文件:有输入参数,返回输出参数 命令文件:对工作空间变量操作函数文件:局部变量 命令文件:直接运行函数文件:不能直接运行,函数调用,第四讲 MATLAB程序设计,2019/8/24,MATLAB在通信中的应用,46,二、 程序控制结构,顺序结构 选择结构 if语句、 switch语句、 try语句 循环结构 for语句、 while语句,第四讲 MATLAB程序设计,2019/8/24,MATLAB在通信中

30、的应用,47,1 顺序结构 1数据的输入 从键盘输入数据,使用input函数来进行,该函数的调用格式为:A=input(提示信息,选项);xm=input(Whats your name?,s);,第四讲 MATLAB程序设计,2数据的输出disp(输出项) 其中输出项既可以为字符串,也可以为矩阵。,2019/8/24,MATLAB在通信中的应用,48,例-2 输入x,y的值,并将它们的值互换后输出。程序如下:x=input(Input x please.);y=input(Input y please.);z=x;x=y;y=z;disp(x);disp(y);,第四讲 MATLAB程序设计

31、,2019/8/24,MATLAB在通信中的应用,49,2 选择结构,1if语句 在MATLAB中,if语句有3种格式。(1) 单分支if语句:,第四讲 MATLAB程序设计,格式之一:if 表达式 语句组A end 其工作流程如图所示。,2019/8/24,MATLAB在通信中的应用,50,第四讲 MATLAB程序设计,格式之二:if 表达式语句组A else语句组B end其工作流程如图所示。,2019/8/24,MATLAB在通信中的应用,51,例3 计算分段函数的值。程序如下:x=input(请输入x的值:); if x=0y=(x+sqrt(pi)/exp(2); elsey=log

32、(x+sqrt(1+x*x)/2; end y,第四讲 MATLAB程序设计,2019/8/24,MATLAB在通信中的应用,52,第四讲 MATLAB程序设计,格式之三:if 表达式1语句组A elseif 表达式2语句组B else语句组Cend 工作流程原理如图2.3所示。,2019/8/24,MATLAB在通信中的应用,53,例4 输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出。c=input(请输入一个字符,s); if c=A end,第四讲 MATLAB程序设计,2019/8/24,

33、MATLAB在通信中的应用,54,2switch语句switch语句根据表达式的取值不同,分别执行不同的语句,其语句格式为:switch 表达式case 表达式1语句组1case 表达式2语句组2case 表达式m语句组motherwise语句组nend,第四讲 MATLAB程序设计,2019/8/24,MATLAB在通信中的应用,55,例5 某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示): price200 没有折扣200price500 3%折扣500price1000 5%折扣1000price2500 8%折扣2500price5000 10%折扣5000

34、price 14%折扣 输入所售商品的价格,求其实际销售价格。,第四讲 MATLAB程序设计,2019/8/24,MATLAB在通信中的应用,56,程序如下: price=input(请输入商品价格); switch fix(price/100) case 0,1 %价格小于200rate=0;case 2,3,4 %价格大于等于200但小于500rate=3/100;case num2cell(5:9) %价格大于等于500但小于1000rate=5/100;case num2cell(10:24) %价格大于等于1000但小于2500rate=8/100;case num2cell(25:

35、49) %价格大于等于2500但小于5000rate=10/100;otherwise %价格大于等于5000rate=14/100; end price=price*(1-rate) %输出商品实际销售价格,第四讲 MATLAB程序设计,2019/8/24,MATLAB在通信中的应用,57,3try语句(matlab特有) 语句格式为: try语句组1 catch语句组2 end try语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2。,第四讲 MATLAB程序设计,2019/8/24,MATLAB在通信中的应用,58,

36、例6 矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。 程序如下: A=1,2,3;4,5,6; B=7,8,9;10,11,12; tryC=A*B; catchC=A.*B; end C lasterr %显示出错原因,第四讲 MATLAB程序设计,2019/8/24,MATLAB在通信中的应用,59,3 循环结构 1for语句 for语句的格式为:for 循环变量=表达式1:表达式2:表达式3循环体语句end 表达式1:循环变量的初值, 表达式2:循环变量的步长, 表达式3:循环变量的终值。,第四讲 MATLAB程序设计,2019/8/2

37、4,MATLAB在通信中的应用,60,例-8 一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。程序如下: for m=100:999 m1=fix(m/100); %求m的百位数字 m2=rem(fix(m/10),10); %求m的十位数字 m3=rem(m,10); %求m的个位数字 if m=m13+m23+m33 disp(m) end end,第四讲 MATLAB程序设计,2019/8/24,MATLAB在通信中的应用,61,2while语句while 表达式语句Aend,第四讲 MATLAB程序设计,2019/8/24,MATLAB在通信中的应用,62

38、,例-11 从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。 sum=0; cnt=0; val=input(Enter a number (end in 0):); while val=0sum=sum+val;cnt=cnt+1;val=input(Enter a number (end in 0):); end if cnt 0summean=sum/cnt end,第四讲 MATLAB程序设计,2019/8/24,MATLAB在通信中的应用,63,第四讲 MATLAB程序设计,控制程序流的其它几个常用命令暂停命令pause, pause(n)的使用当需要看中间运算结

39、果时可以使用这个命令,回车后程序继续运行。 keyboard将控制权暂时交给键盘,然后当用户输入return时,控制权还给MATLABbreak中断,在for循环中,和if语句配合,跳出循环;continue跳过位于其后的循环中的其它命令,执行循环的下一步迭代return结束return所在的函数的执行error(*)显示出错信息*,并终止程序;warning(*)显示告警信息*,程序继续运行。,2019/8/24,64,求100,200之间第一个能被21整除的整数,程序如下: for n=100:200 if rem(n,21)=0continue end break end n,2019/

40、8/24,MATLAB在通信中的应用,65,函数文件由function语句引导,基本结构为:function 输出形参表=函数名(输入形参表)% 注释说明部分函数体语句其中以function开头的一行为引导行,表示该M文件是一个函数文件。 函数名的命名规则与变量名相同。文件名与函数名的关系。 输入形参为函数的输入参数,输出形参为函数的输出参数。当输出形参多于一个时,则应该用方括号括起来。,三 函数文件的基本结构,第四讲 MATLAB程序设计,2019/8/24,MATLAB在通信中的应用,66,M函数文件的基本格式:函数声明行H1行(用%开头的注释行)在线帮助文本(用%开头)编写和修改记录(用

41、%开头)函数体,第四讲 MATLAB程序设计,2019/8/24,MATLAB在通信中的应用,67,例14 编写函数文件求半径为r的圆的面积和周长函数文件如下: function s,p=fcircle(r) %CIRCLE calculate the area and perimeter of a circle of radii r %r 圆半径 %s 圆面积 %p 圆周长 %2009年3月10日编 s=pi*r*r; p=2*pi*r;,2019/8/24,MATLAB在通信中的应用,68,函数调用的一般格式是:输出实参表=函数名(输入实参表)要注意的是,函数调用时各实参出现的顺序、个数,

42、应与函数定义时形参的顺序、个数一致,否则会出错。 函数调用时,先将实参传递给相应的形参,从而实现参数传递,然后再执行函数的功能。,函数调用,2019/8/24,MATLAB在通信中的应用,69,例3-15 利用函数文件,实现直角坐标(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(

43、x,y); rho the,2019/8/24,MATLAB在通信中的应用,70,第五讲 MATLAB绘图,二维图形绘制 三维图形绘制,2019/8/24,MATLAB在通信中的应用,71,1 二维图形绘制,基本绘图命令 plot(Y) plot(X,Y) plot(X,Y,s),plot,2019/8/24,MATLAB在通信中的应用,72,二维图形绘制,plot(Y) 以Y的索引坐标为横坐标,Y本身为纵坐标,绘制图形,【例】 y=rand(100,1); plot(y),2019/8/24,MATLAB在通信中的应用,73,二维图形绘制,plot(X,Y) 以X为横坐标,Y为纵坐标,绘制图

44、形,这是实际应用最常见的,【例】 x=0:0.01*pi:2*pi; plot(x,sin(x),2019/8/24,MATLAB在通信中的应用,74,二维图形绘制,plot(X,Y,s) 以X为横坐标,Y为纵坐标,绘制图形,第3个参数控制图形显示属性(线形、颜色及标识等),2019/8/24,MATLAB在通信中的应用,75,二维图形绘制,plot(X,Y,s) 以X为横坐标,Y为纵坐标,绘制图形,第3个参数控制图形显示属性(线形、颜色及标识等),【例】 x=0:0.01*pi:2*pi; y=sin(x); z=cos(x); plot(x,y,rd,x,z,-.k),2019/8/24,

45、MATLAB在通信中的应用,76,二维图形绘制,将标题、坐标轴标记、网格线及文字注释加注到图形上,这些函数为:title 给图形加标题xlable 给x轴加标注ylable 给y轴加标注text 在图形指定位置加标注gtext 将标注加到图形任意位置grid on(off) 打开、关闭坐标网格线legend 添加图例axis 控制坐标轴的刻度,2019/8/24,MATLAB在通信中的应用,77,二维图形绘制,标题与轴标签 对图形加上标题,标明横纵坐标,【例】 x=0:0.01*pi:2*pi; y=sin(x); plot(x,y) title(正弦函数, FontSize,15) xlab

46、el(x(0-2pi),FontSize,14) ylabel(y=sin(x),FontSize,14),2019/8/24,MATLAB在通信中的应用,78,二维图形绘制,在标注中如何输入特殊符号? 字符转换 如:pi 即显示为 Omega 即显示为 无须记住,用时会查,会联想即可 常见符号转义示例,2019/8/24,MATLAB在通信中的应用,79,二维图形绘制,文本标注 text(x,y,标注文本及控制字符串),【例】 x=0:0.01*pi:2*pi; plot(x,sin(x) text(3*pi/4,sin(3*pi/4),leftarrow sin(3pi/4)=, num2

47、str(sin(3*pi/4),FontSize,12),2019/8/24,MATLAB在通信中的应用,80,二维图形绘制,图形的保持与子图 多次绘制得到重叠效果 hold on 开启图形保持功能 hold off 关闭图形保持功能 坐标限若不一致,自动调整,2019/8/24,MATLAB在通信中的应用,81,二维图形绘制,示例,【例】 x=0:0.1*pi:2*pi; y=sin(x); z=cos(x); plot(x,y,-*) hold on %开启 plot(x,z,-o) plot(x,y+z,-h) legend(sin(x),cos(x),sin(x)+cos(x),0)

48、hold off %关闭,2019/8/24,MATLAB在通信中的应用,82,二维图形绘制,不同坐标轴下叠加图形,通过在相同位置创建新的坐标轴来实现图形叠加方便数据的比较观察,例:一个将有害的废料转化为无害的生物医学实验。实验 中的废料的聚乙烯物质(TCE)和相关温度数据如下: TCE=515 420 370 250 135 120 60 20; temp=29 23 27 25 20 23 23 27;,2019/8/24,MATLAB在通信中的应用,83,二维图形绘制,不同坐标轴下叠加图形,上述数据在35天中每隔5天一个采样得到,即days=0:5:35; tce=515 420 370 250 135 120 60 20; temp=29 23 27 25 20 23 23 27; plotyy(days,tce,days,temp);,2019/8/24,MATLAB在通信中的应用,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报