《MATLAB教程(图形图像处理及MATLAB实现)课件》由会员分享,可在线阅读,更多相关《MATLAB教程(图形图像处理及MATLAB实现)课件(192页珍藏版)》请在金锄头文库上搜索。
1、Dr WangZhengsheng - Lecture Notes,1,MATLAB,1 MATLAB简介,Dr WangZhengsheng - Lecture Notes,2,Matlab 简介,在欧美各高等院校,Matlab 已经成为线性代数、数值分析、数理统计、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,已成为大学生必须掌握的基本技能之一。Matlab 功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。,Matlab是一种广泛应用于工程计算及数值分析领域的新型高级语言,自 1984 年推向市场以来,历经二十多年的发展与竞争,现已成为国际
2、公认的最优秀的工程应用开发环境。,Dr WangZhengsheng - Lecture Notes,3,Matlab 简介,Matlab: Matrix Laboratory 矩阵实验室,Matlab 的发展,1980年,Moler 教授用 Fortran 语言编写了集命令翻译、 科学计算于一身的一套交互式软件系统。,1984年,Moler 等成立了 The MathWorks 的公司,用 C 语言完全改写 Matlab,并推出第一个商业版。,增添图形图像处理、符号运算、以及与其他流行软件 的接口功能,使得 Matlab 的功能越来越强大。,到九十年代,在国际上 30 几个数学类科技应用软件
3、中, Matlab 在数值计算方面独占鳌头。,Dr WangZhengsheng - Lecture Notes,4,目前,Matlab 已成为世界顶尖的数学应用软件,以其强大的工程计算、算法研究、工程绘图、应用程序开发、数据分析和动态仿真等功能,在航空航天、机械制造和工程建筑等领域发挥着越来越重要的作用。就影响而言,至今仍然没有一个别的计算软件可与 Matlab 匹敌。,Matlab 的发行,1984年,Matlab 1.0 (DOS版,182K,20多个函数) 1992年,Matlab 4.0 (93年推出Windows版,加入 simulink)1994年,Matlab 4.2(得到广泛
4、重视和应用) 1999年,Matlab 5.3(真正实现32位运算)2002年,Matlab 6.5(采用JIT加速器) 2004年,Matlab 7.0 自2006年起,Matlab每年更新两次,Matlab 简介,Dr WangZhengsheng - Lecture Notes,5,购买(下载)Matlab 软件,Matlab 的安装,插入光盘,自动运行; 或点击安装程序 setup.exe,必须安装的部件 Matlab Symbolic Math Toolbox Extended Symbolic Math,这里以 Matlab 7.0.4 为例 自 R2008a 开始增加了激活要求,
5、Dr WangZhengsheng - Lecture Notes,6,Matlab 的特点与功能,Matlab 具有很强的数值计算功能,Matlab 以矩阵作为数据操作的基本单位, 但无需预先指定矩阵维数(动态定维),按照 IEEE 的数值计算标准进行计算,提供十分丰富的数值计算函数,方便计算,提高效率,Matlab 命令与数学中的符号、公式非常接近, 可读性强,容易掌握,Matlab 是一个交互式软件系统,输入一条命令,立即就可以得出该命令的结果,Dr WangZhengsheng - Lecture Notes,7,Matlab 的特点与功能,Matlab 符号计算功能,Matlab 和
6、著名的符号计算语言 Maple 相结合,Matlab 的编程功能,Matlab具有程序结构控制、函数调用、数据结构、输入输出、面向对象等程序语言特征,而且简单易学、编程效率高。通过 Matlab 进行编程完成特定的任务,Matlab 的绘图功能,Matlab提供丰富的绘图命令,很方便实现数据的可视化,Dr WangZhengsheng - Lecture Notes,8,Matlab 丰富的工具箱(toolbox),Matlab 的特点与功能,根据专门领域中的特殊需要而设计的各种可选工具箱,Matlab 的 Simulink 动态仿真集成环境,提供建立系统模型、选择仿真参数和数值算法、启动仿真
7、程序对该系统进行仿真、设置不同的输出方式来观察仿真结果等功能,Dr WangZhengsheng - Lecture Notes,9,Matlab 的基本用法,Matlab 系统的启动,使用 Windows “开始” 菜单 运行 Matlab 系统启动程序 matlab 双击 Matlab 快捷图标,Matlab 系统的退出,在 Matlab 主窗口 File 菜单中选择 Exit Matlab 在 Matlab 命令窗口输入 exit 或 quit 单击 Matlab 主窗口的“关闭”按钮,Dr WangZhengsheng - Lecture Notes,10,Matlab 的工作界面,命
8、令窗口,当前工作目录,当前工作空间,输入命令的历史记录,命令 提示符,Dr WangZhengsheng - Lecture Notes,11,定义矩阵:直接输入法,矩阵用方括号 “ ” 括起,例: A = 1 2 3; 4 5 6; 7 8 9,矩阵同一行中的元素之间用 空格 或 逗号 分隔,矩阵行与行之间用 分号 分开,直接输入法中,分号可以用 回车 代替,例:,矩阵,Matlab 的操作对象是 矩阵, :命令提示符,不用输入 回车 :运行所输入的命令,Dr WangZhengsheng - Lecture Notes,12,矩阵元素可以是任何数值表达式,例: x=-1.3, sqrt(3
9、), (1+2+3)*4/5,矩阵元素赋值,矩阵元素的单独赋值,例: x(5)=abs(x(1),例: x(5)=abs(x(6) ?,Matlab自动将向量 x 的长度扩展到 5, 并将未赋值部分置零。,Dr WangZhengsheng - Lecture Notes,13,大矩阵可以把小矩阵作为其元素,矩阵元素赋值,例: A=A ; 11 12 13,在原矩阵的下方加一行,如何在原矩阵的右边添加一列?,Dr WangZhengsheng - Lecture Notes,14,单个元素的引用,例: A(2,3),矩阵元素的引用,多个元素的引用:冒号的特殊用法,利用小括弧和元素所在的位置(下
10、标),x ( i ) :向量 x 中的第 i 个元素 A ( i, j ) :矩阵 A 中的第 i 行,第 j 列元素,例: x=3:2:1,Dr WangZhengsheng - Lecture Notes,15,例: x(1:3) A(3,1:3),矩阵元素的引用,A(i:j, m:n) 表示由矩阵 A 的第 i 到第 j 行和第 m 到第 n 列交叉线上的元素组成的子矩阵。,可利用冒号提取矩阵 的整行或整列。,例: A(1, :) A(:, 1:3) A(:, :),Dr WangZhengsheng - Lecture Notes,16,Matlab帮助系统,Dr WangZhengs
11、heng - Lecture Notes,17,Matlab 查找命令,lookfor 按指定的关键词查询与之相关的命令,例: lookfor inverse,Dr WangZhengsheng - Lecture Notes,18,变量命名原则,Matlab 变量,Dr WangZhengsheng - Lecture Notes,19,分号和续行符的作用,Matlab 变量,若不想在屏幕上输出结果,可以在语句最后加分号,如果语句很长,可用续行符 “”(三个点)续行 续行符的前面最好留一个空格,例:,Dr WangZhengsheng - Lecture Notes,20,变量的查询,Mat
12、lab 变量,who 显示工作空间中的所有变量,whos 查看工作空间中变量的详细属性,Dr WangZhengsheng - Lecture Notes,21,系统预定义变量,Matlab 变量,pi : 圆周率 ,其值为 imag(log(-1),inf,Inf :无穷大,nan,NaN :Not-a-Number,一个不定值,如 0/0,eps :浮点运算相对精度,特殊变量 ans,i,j :虚部单位,即,应尽量避免给系统预定义变量重新赋值!,Dr WangZhengsheng - Lecture Notes,22,数与算术表达式,Matlab 数值运算,浮点运算的相对误差为 eps,浮
13、点数表示范围为:10-308 10308,复数作为矩阵元素输入时,加号两边不能有空格!,Dr WangZhengsheng - Lecture Notes,23,数学运算符,+ 加法,Matlab 数值运算,- 减法,* 乘法,/ 和 除法(右除和左除), 幂运算,命令分隔符:逗号和分号,Dr WangZhengsheng - Lecture Notes,24,输出格式,Matlab 的输出,Matlab 以双精度执行所有的运算,运算结果可以在屏幕上输出,同时赋给指定变量;若无指定变量,则系统会自动将结果赋给变量 “ans”,Matlab 中数的输出格式可以通过 format 命令指定,for
14、mat 只改变变量的输出格式, 但不会影响变量的值!,Dr WangZhengsheng - Lecture Notes,25,各种 format 格式,Dr WangZhengsheng - Lecture Notes,26,变量的存储,存储当前工作空间中的变量,save 将所有变量存入文件 matlab.mat,save mydata 将所有变量存入指定文件 mydata.mat,存储指定的变量,save mydata.mat 将所有变量存入文件 mydata.mat,save 文件名 变量名列表,例: save mydata A x z,变量名列表中各变量之间用空格分隔,Dr WangZ
15、hengsheng - Lecture Notes,27,变量的读取,清除当前工作空间中的变量,clear 清除当前工作空间中的所有变量,clear A x 清除指定的变量,Dr WangZhengsheng - Lecture Notes,28,几个小技巧,Matlab 的命令记忆功能:上下箭头键,命令补全功能: Tab 键,可以先输入命令的前几个字符,再按上下键缩小搜索范围,用 Esc 键 删除命令行,Dr WangZhengsheng - Lecture Notes,29,Lecture 2 MATLAB矩阵(数值)运算,Dr WangZhengsheng - Lecture Notes
16、,30,利用函数建立数值矩阵:MATLAB提供了许多生成和操作矩阵的函数,可以利用它们去建立矩阵。 例如: reshape函数和diag函数等。 reshape函数用于建立数值矩阵。 diag函数用于产生对角阵。,利用M文件建立矩阵:对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。其步骤为: 第一步:使用编辑程序输入文件内容。 第二步:把输入的内容以纯文本方式存盘(设文件名为 mymatrix.m)。 第三步:在MATLAB命令窗口中输入mymatrix,就会自动建立一个名为AM的矩阵,可供以后显示和调用。,建立矩阵,Dr WangZhengsheng - Lecture Notes,31,利用M文件建立矩阵: 对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。其步骤为: 第一步:使用编辑程序输入文件内容。 第二步:把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。 第三步:在MATLAB命令窗口中输入mymatrix,就会自动建立一个名为AM的矩阵,可供以后显示和调用。 子矩阵操作,建立矩阵,Dr WangZhengsheng - L