《《matlab使用》PPT课件》由会员分享,可在线阅读,更多相关《《matlab使用》PPT课件(61页珍藏版)》请在金锄头文库上搜索。
1、.,1,李 杨 新技术楼807 Tel:86418052-830 哈尔滨工业大学电子工程系,数字信号处理课程实验(一) Matlab使用入门,.,2,学习内容一、概述发展、用途二、基本定义与基础操作三、基本矩阵操作四、MATLAB程序设计五、MATLAB中的数字信号处理,.,3,MATLAB语言的发展,始于20世纪70年代设计者的初衷是为解决“线性代数”课程的矩阵运算问题 调用库程序的接口,Fortran编写 1984年成立MathWorksC编写 现已成为国际控制界公认的标准计算软件 在30多个数学类计算软件中,在数值计算上独占鳌头,.,4,什么是MATLAB,一种交互式的以矩阵为基础的系统
2、计算平台,它用于科学和工程的计算与可视化。,.,5,优点: MATLAB是一种直译式的高级语言,比其它程序设计语言容易 快速开发 丰富的图形功能和界面开发,MATLAB在美国已经作为大学工科学生必修的计算机语言之一 (C, FORTRAN, ASSEMBLER, MATLAB),.,6,MATLAB语言与其它语言的关系仿佛和C语言与汇编语言的关系一样,计算机语言的发展,标志着计算机语言向“智能化”方向发展,被称为第四代编程语言。,.,7,应用领域 工业研究与开发 数学教学,特别是线性代数 数值分析和科学计算方面的教学与研究 电子学、控制理论和物理学等工程和科学 学科方面的教学与研究 经济学、化
3、学和生物学等计算问题的所有其他领域中的教学与研究,.,8,特点:开放式可扩充结构,matlab 所有函数都是开放的 用户可按自己意愿随意更改 正因为此功能,使得matlab的应用越来越广泛,.,9,我们做什么?,大量的工具箱需要强大的联机检索帮助系统,.,10,matlab联机帮助命令,help 功能提供matlab大部分主题的在线帮助信息 help 显示help 主题一览表 help plotxyz 显示有关三维做图指令帮助信息 help 显示特殊字符与符号帮助信息 help help 显示help 的帮助信息,.,11,虽然help可以随时提供帮助,但必须知道准确的函数名称。当不能确定函数
4、名称时,help就无能为力了。,Lookfor函数 它可提供通过一般的关键词,搜索出一组与之相关的命令 lookfor fourier 寻找含有傅立叶变换的相关指令:如 FFT Discrete Fourier transform,.,12,网络资源,USENET新闻组 MATLAB的新闻组是comp.soft-sys.MATLAB。浏览器指向 网络上的工具箱 ,.,13,网络资源(2),BBS 哈尔滨工业大学bbs: telnet:/ 上海交通大学bbs: telnet:/ 清华大学bbs mathtools www服务 Matlab 大观园: http:/www.matlab-,.,14,
5、概述桌面,.,15,元素间,行间,亦可分行输入,.,16,数值和变量,数值十进制表示:1.3e-3 对大小写敏感:如sin,Sin,SIN 变量名首字符必须是英文(无空格、标点,可使用下划线) 总字符64 预定义变量(右表),.,17,运算符和表达式,除法:a/b=b/a 幂运算:ab 注:所有运算定义在复数域 方根运算只返回第一象限解 将复数作为整体处理 允许矩阵元素是复数,.,18,矩阵、数组运算,转置 矩阵用符号A来表示和实现 数组非共轭转置A . 四则运算 矩阵+-*/ 数组点乘A.* 右除: A./ 左除: A. 乘方 A.数组各元素分别自乘 A 矩阵为方阵时自乘,.,19,数组乘除
6、(,./,.),ab a,b两数组必须有相同的行和列两数组相应元素相乘。 a=1 2 3;4 5 6;7 8 9; b=2 4 6;1 3 5;7 9 10; a.*b ans = 2 8 18 4 15 30 49 72 90,.,20,inv 矩阵求逆 det 行列式的值 eig 矩阵的特征值 diag 对角矩阵 sqrt 矩阵开方,矩阵的其它运算,.,21,矩阵的超越函数,.,22,关系运算,常用的关系操作符:、=、 = =、 != 用来比较两个大小相同的数组 比较一个数组和一个标量,.,23,.,24,.,25,逻辑运算,常用的逻辑操作符:b=reshape(a,3,4) c=zero
7、s(3,4);c(:)=a(:) 矩阵的变向 rot90:旋转; fliplr:上翻; flipud:下翻 矩阵的抽取 diag:抽取主对角线;tril: 抽取主下三角; triu:抽取主上三角,.,32,矩阵查找和排序,子矩阵的查找使用find命令完成,它返回关系表达式为真的下标。例如: a=10:20; find(a15) ans = 7 8 9 10 11 矩阵的排序使用sort函数,它将矩阵按照升序排列。,.,33,计算结果的图形表达, x=1:40; y1=sin(pi*x/4); y2=cos(pi*x/8); plot(x,y1,c,x,y2,r),.,34,MATLAB的程序设
8、计,一、 matlab的工作模式指令驱动模式 通常matlab以指令驱动模式工作,即matlab命令行方式。 命令行操作时,matlab窗口只允许一次执行一行上的一个或几个语句。,.,35,命令行方式程序可读性差,而且不能存储,对于复杂的问题,应编写成能存储的程序文件。 在matlab窗口输入数据和命令进行计算时,当处理复杂问题和大量数据时是不方便的。因此应编辑m文件。,.,36,matlab的工作模式 m文件模式 将matlab语句构成的程序存储成以m为扩展名的文件,然后再执行该程序文件,这种工作模式称为程序文件模式。 程序文件不能在指令窗口下建立,因为指令窗口只允许一次执行一行上的一个或几
9、个语句。,.,37,二、m文件的创建,m文件的类型是普通的文本文件,我们可以使用系统认可的文本文件编辑器来建立m文件。如dos下的edit,windows的记事本和word等。 具体的创建方法: 在matlab命令窗 口点击file 菜单 new m-file,.,38,.,39,三、matlab文件的类型,数据文件 .mat mat文件是matlab以标准二进制格式保存的数据文件,可将工作空间中有用的数据变量保存下来。 mat文件的生成和调用是由函数save和load完成的。 例如:load gatlin image(X),.,40,2. m文件 m文件的语法类似于c语言,但又有其自身特点。
10、它只是一个简单的ASCII码文本文件,执行程序时逐行解释运行程序,matlab是解释性的编程语言。 m文件有两类独立的m文件 称命令文件 可调用m文件 称函数文件 (1). 命令文件 简单的m文件 命令文件实际上是一串指令的集合,与在命令窗口逐行执行文件中的所有指令,其结果是一样的。没有输入输出参数。,.,41,命令文件包括两部分:注释文件和程序文件 %RANKNumber of linearly independent rows or columns. %K = RANK(X) is the number of singular values of X %that are larger th
11、an MAX(SIZE(X) * NORM(X) * EPS. %K = RANK(X,tol) is the number of singular values of X that %are larger than tol. %Copyright (c) 1984-94 by The MathWorks, Inc. s = svd(x); if (nargin = 1) tol = max(size(x) * max(s) * eps; end r = sum(s tol);,程序部分,.,42,(2).matlab内置函数文件 matlab自定义的函数文件称内置函数文件 调用内置函数的方法
12、:使用函数名并给出相应的入口、出口参数即可。 例如:sin.m函数用type sin查不到。 调用格式:y=sin(2*x) 实际应用中: x=0:2*pi/180:2*pi; y=sin(2*x) plot(x,y),.,43,又如 sqrt(x) 求x的平方根 abs(x) 求x的绝对值 det(a) 求行列式的值 等等。matlab拥有大量的内置数学函数,供我们在数值运算和符号运算中调用。 (3). 函数m文件 需要输入变量,返回输出变量 matlab用户可以根据需要编辑自己的m文件,它们可以像库函数一样方便的调用,从而极大地扩展了matlab 的能力。,.,44,对于某一类特殊问题,如
13、创建了许多m函数文件,则可形成新的工具箱。 这种用matlab语言创建定义新的matlab函数的功能,正体现了matlab语言强大的扩展功能。,.,45,函数m文件的格式: function 返回变量=函数名(输入变量) 注释说明语句段 程序语句段 特定规则: 函数m文件第一行必须以单词function作为引导词,必须遵循如下形式: function =() m文件的文件名必须是 .m。 程序中的变量均为局部变量,不保存在工作空间中。 其变量只在函数运行期间有效。,.,46,四、matlab的程序结构,matlab语言的程序结构与其它高级语言是一致的,分为顺序结构,循环结构,分支结构。 (1)
14、.顺序结构 依次顺序执行程序的各条语句 (2).循环结构 被重复执行的一组语句,循环是计算机解决问题的主要手段。 循环语句主要有: for end,.,47,语法为: for i = 表达式 (表达式为一个向量) 可执行语句 end 例:利用for循环求1!+2!+3!+ +5!的值 sum=0; for i=1:5 pdr=1; for k=1:i pdr=pdr*k; end sum=sum+pdr; end,sum = 153,.,48, while end 循环 while循环将循环体中的语句循环执行不定次数。 语法为:while 表达式 循环体语句 end 表达式一般是由逻辑运算和关
15、系运算以及一般运算组成的,以判断循环的进行和停止;只要表达式的值 非0,继续循环;直到表达式值为0,循环停止。,.,49,例:用while循环求1100间整数的和 sum=0; i=1; while i=100 sum=sum+i; i=i+1; end sum sum = 5050,.,50,(3). 分支结构 根据一定条件来执行的各条语句。 if else end语句有3种形式 if 表达式 执行语句 end if 表达式 是 语句1 else 否 语句2 end,.,51, if 表达式1 多分支 语句1 elseif 表达式2 语句2 elseif 表达式3 语句3 else 语句n end,这种结构实现了一种多路选择,比较复杂。可替代一般高级语言中的switch-case-end语句,.,52,在条件表达式中,通常都是由 关系操作符 , =, = =, = 等 逻辑操作符 &,| , 等 逻辑函数:isequal 若是相等则为真 isempty 若是空矩阵则为真 isstr 若是字符串则为真 例:编写m函数,计算函数值 x (x=10),.,53,MATLAB在数字信号处理中的应用,.,54,.,55,.,56,.,57,.,58,.,59,其他工具箱实验安排,.,60,THE ENDThank you!,感谢亲观看此幻灯片,此课件部分内容