当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

MATLAB简介

资源类别:文库,文档格式:DOC,文档页数:23,文件大小:134.5KB,团购合买
1. MATLAB 的概况 MATLAB 是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力 外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。 MATLAB 的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分 相似,故用 MATLAB 来解算问题要比用 C,FORTRAN 等语言完相同的事情简捷得多.
点击下载完整版文档(DOC)

MATLAB简介 http:/www.mathworks.com/ MATLAB的概况 MA∏LAB是矩阵实验室( Matrix Laboratory)之意。除具备卓越的数值计算能力 外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能 MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分 相似故用 MATLAB来解算问题要比用C, FORTRAN等语言完相同的事情简捷得多 当前流行的 MATLAB53 Simulink30包括拥有数百个内部函数的主包和三十几种工 具包( Toolbox).工具包又可以分为功能性工具包和学科工具包功能工具包用来扩充 MATLAB的符号计算可视化建模仿真,文字处理及实时控制等功能学科工具包是专业性比 较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类 开放性使 MATLAB广受用户欢迎除内部函数外所有 MATLAB主包文件和各种工具 包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具 2. MATLAB产生的历史背景 在70年代中期, Cleve moler博士和其同事在美国国家科学基金的资助下开发了调用 EISPACK和 LINPACK的 FORTRAN子程序库 EISPACK是特征值求解的 FOETRAN程序 库, LINPACK是解线性方程的程序库在当时,这两个程序库代表矩阵运算的最高水平 到70年代后期,身为美国 New mexico大学计算机系系主任的 Cleve moler,在给学生讲 授线性代数课程时,想教学生使用 EISPACK和 LINPACK程序库,但他发现学生用 FORTRAN 编写接口程序很费时间,于是他开始自己动手,利用业余时间为学生编写 EISPACK和 INPACK的接口程序 Cleve moler给这个接口程序取名为 MATLAB,该名为矩阵(maix)和实 验室( labotatory)两个英文单词的前三个字母的组合在以后的数年里 MATLAB在多所大学里 作为教学辅助软件使用,并作为面向大众的免费软件广为流传 1983年春天, Cleve Moler到 Standford大学讲学 MATLAB深深地吸引了工程师John Little john little敏锐地觉察到 MATLAB在工程领域的广阔前景同年,他和 Cleve moler, Steve Bangert一起,用C语言开发了第二代专业版这一代的MA∏LAB语言同时具备了数值计算和 数据图示化的功能 1984年, Cleve moler和 John little成立了 Math Works公司,正式把 MATLAB推向市场 并继续进行 MATLAB的研究和开发 在当今30多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大 类.一类是数值计算型软件如 MATLAB, Xmath, Gauss等,这类软件长于数值计算,对处理大批 数据效率高;另一类是数学分析型软件 Mathematica, Maple等这类软件以符号计算见长,能给 出解析解和任意精确解,其缺点是处理大量数据时效率较低 Math Works公司顺应多功能需求

MATLAB 简介 http://www.mathworks.com/ 1. MATLAB 的概况 MATLAB 是矩阵实验室(Matrix Laboratory)之意。除具备卓越的数值计算能力 外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。 MATLAB 的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分 相似,故用 MATLAB 来解算问题要比用 C,FORTRAN 等语言完相同的事情简捷得多. 当前流行的 MATLAB 5.3/Simulink 3.0 包括拥有数百个内部函数的主包和三十几种工 具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充 MATLAB 的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比 较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类. 开放性使 MATLAB 广受用户欢迎.除内部函数外,所有 MATLAB 主包文件和各种工具 包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具 包. 2. MATLAB 产生的历史背景 在 70 年代中期,Cleve Moler 博士和其同事在美国国家科学基金的资助下开发了调用 EISPACK 和 LINPACK 的 FORTRAN 子程序库.EISPACK 是特征值求解的 FOETRAN 程序 库,LINPACK 是解线性方程的程序库.在当时,这两个程序库代表矩阵运算的最高水平. 到70年代后期,身为美国New Mexico大学计算机系系主任的Cleve Moler,在给学生讲 授线性代数课程时,想教学生使用 EISPACK 和 LINPACK 程序库,但他发现学生用 FORTRAN 编写接口程序很费时间,于是他开始自己动手,利用业余时间为学生编写 EISPACK 和 LINPACK的接口程序.Cleve Moler 给这个接口程序取名为MATLAB,该名为矩阵(matrix)和实 验室(labotatory)两个英文单词的前三个字母的组合.在以后的数年里,MATLAB 在多所大学里 作为教学辅助软件使用,并作为面向大众的免费软件广为流传. 1983 年春天,Cleve Moler 到 Standford 大学讲学,MATLAB 深深地吸引了工程师 John Little.John Little 敏锐地觉察到 MATLAB 在工程领域的广阔前景.同年,他和 Cleve Moler,Steve Bangert 一起,用 C 语言开发了第二代专业版.这一代的 MATLAB 语言同时具备了数值计算和 数据图示化的功能. 1984 年,Cleve Moler 和 John Little 成立了 Math Works 公司,正式把 MATLAB 推向市场, 并继续进行 MATLAB 的研究和开发. 在当今 30 多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大 类.一类是数值计算型软件,如 MATLAB,Xmath,Gauss 等,这类软件长于数值计算,对处理大批 数据效率高;另一类是数学分析型软件,Mathematica,Maple 等,这类软件以符号计算见长,能给 出解析解和任意精确解,其缺点是处理大量数据时效率较低.MathWorks 公司顺应多功能需求

之潮流在其卓越数值计算和图示能力的基础上,又率先在专业水平上开拓了其符号计算,文 字处理,可视化建模和实时控制能力,开发了适合多学科,多部门要求的新一代科技应用软件 MATLAB经过多年的国际竞争 MATLAB以经占据了数值软件市场的主导地位 在MA∏LAB进入市场前,国际上的许多软件包都是直接以 FORTRANC语言等编程 语言开发的。这种软件的缺点是使用面窄,接口简陋,程序结构不开放以及没有标准的基库, 很难适应各学科的最新发展,因而很难推广。 MATLAB的出现,为各国科学家开发学科软 件提供了新的基础。在 MATLAB问世不久的80年代中期,原先控制领域里的一些软件包 纷纷被淘汰或在 MATLAB上重建。 Math Works公司1993年推出了 MATLAB4。0版,1995年推出4。2C版( for win3 X)1997年推出5。0版。199年推出5。3版。 MATLAB5。X较 MATLAB4。X无论是 界面还是内容都有长足的进展,其帮助信息采用超文本格式和PDF格式,在 Netscape3。0 或IE4。0及以上版本, Acrobat Reader中可以方便地浏览。 时至今日,经过 Math Works公司的不断完善, MATLAB已经发展成为适合多学科, 多种工作平台的功能强大大大型软件。在国外,MA∏LAB已经经受了多年考验。在欧美等 高校,MA∏LAB已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列 分析,动态系统仿真等高级课程的基本教学工具:;成为攻读学位的大学生,硕士生,博士生 必须掌握的基本技能。在设计研究单位和工业部门,MA∏LAB被广泛用于科学研究和解决 各种具体问题。在国内,特别是工程界, MATLAB一定会盛行起来。可以说,无论你从事 工程方面的哪个学科,都能在 MATLAB里找到合适的功能。 2. MATLAB的语言特点 种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于 其他语言的特点,正如同 FORTRAN和C等高级语言使人们摆脱了需要直接对计算机硬件 资源进行操作一样,被称作为第四代计算机语言的 MATLAB,利用其丰富的函数资源,使 编程人员从繁琐的程序代码中解放出来。 MATLAB最突出的特点就是简洁。 MATLAB用更 直观的,符合人们思维习惯的代码,代替了C和 FORTRAN语言的冗长代码。 MATLAB 给用户带来的是最直观,最简洁的程序开发环境。以下简单介绍一下 MATLAB的主要特点 1)。语言简洁紧凑,使用方便灵活,库函数极其丰富。 MATLA B程序书写形式自由 利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函 数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用 MATLAB进行科技开 发是站在专家的肩膀上 具有 FORTRAN和C等高级语言知识的读者可能已经注意到,如果用 FORTRAN或 C语言去编写程序,尤其当涉及矩阵运算和画图时,编程会很麻烦。例如,如果用户想求解 个线性代数方程,就得编写一个程序块读入数据,然后再使用一种求解线性方程的算法(例 如追赶法)编写一个程序块来求解方程,最后再输出计算结果。在求解过程中,最麻烦的要

之潮流,在其卓越数值计算和图示能力的基础上,又率先在专业水平上开拓了其符号计算,文 字处理,可视化建模和实时控制能力,开发了适合多学科,多部门要求的新一代科技应用软件 MATLAB.经过多年的国际竞争,MATLAB 以经占据了数值软件市场的主导地位. 在 MATLAB 进入市场前,国际上的许多软件包都是直接以 FORTRANC 语言等编程 语言开发的。这种软件的缺点是使用面窄,接口简陋,程序结构不开放以及没有标准的基库, 很难适应各学科的最新发展,因而很难推广。MATLAB 的出现,为各国科学家开发学科软 件提供了新的基础。在 MATLAB 问世不久的 80 年代中期,原先控制领域里的一些软件包 纷纷被淘汰或在 MATLAB 上重建。 MathWorks 公司 1993 年推出了 MATLAB 4。0 版,1995 年推出 4。2C 版(for win3。 X)1997 年推出 5。0 版。1999 年推出 5。3 版。MATLAB 5。X 较 MATLAB 4。X 无论是 界面还是内容都有长足的进展,其帮助信息采用超文本格式和 PDF 格式,在 Netscape 3。0 或 IE 4。0 及以上版本,Acrobat Reader 中可以方便地浏览。 时至今日,经过 MathWorks 公司的不断完善,MATLAB 已经发展成为适合多学科, 多种工作平台的功能强大大大型软件。在国外,MATLAB 已经经受了多年考验。在欧美等 高校,MATLAB 已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列 分析,动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生,硕士生,博士生 必须掌握的基本技能。在设计研究单位和工业部门,MATLAB 被广泛用于科学研究和解决 各种具体问题。在国内,特别是工程界,MATLAB 一定会盛行起来。可以说,无论你从事 工程方面的哪个学科,都能在 MATLAB 里找到合适的功能。 2.MATLAB 的语言特点 一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于 其他语言的特点,正如同 FORTRAN 和 C 等高级语言使人们摆脱了需要直接对计算机硬件 资源进行操作一样,被称作为第四代计算机语言的 MATLAB,利用其丰富的函数资源,使 编程人员从繁琐的程序代码中解放出来。MATLAB 最突出的特点就是简洁。MATLAB 用更 直观的,符合人们思维习惯的代码,代替了 C 和 FORTRAN 语言的冗长代码。MATLAB 给用户带来的是最直观,最简洁的程序开发环境。以下简单介绍一下 MATLAB 的主要特点。 1)。语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB 程序书写形式自由, 利用起丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函 数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用 MATLAB 进行科技开 发是站在专家的肩膀上。 具有 FORTRAN 和 C 等高级语言知识的读者可能已经注意到,如果用 FORTRAN 或 C 语言去编写程序,尤其当涉及矩阵运算和画图时,编程会很麻烦。例如,如果用户想求解 一个线性代数方程,就得编写一个程序块读入数据,然后再使用一种求解线性方程的算法(例 如追赶法)编写一个程序块来求解方程,最后再输出计算结果。在求解过程中,最麻烦的要

算第二部分。解线性方程的麻烦在于要对矩阵的元素作循环,选择稳定的算法以及代码的调 试动不容易。即使有部分源代码,用户也会感到麻烦,且不能保证运算的稳定性。解线性方 程的程序用 FORTRAN和C这样的高级语言编写,至少需要四百多行,调试这种几百行的 计算程序可以说很困难。以下用 MATLAB编写以上两个小程序的具体过程 MATLAB求解下列方程,并求解矩阵A的特征值 Ax=b,其中: A=32134567 4323 7135 l 解为:x=Ab,设A的特征值组成的向量e,e=eig(A) 可见,MA∏LAB的程序极其简短。更为难能可贵的是, MATLAB甚至具有一定的智 能水平,比如上面的解方程, MATLAB会根据矩阵的特性选择方程的求解方法,所以用户 根本不用怀疑 MATLAB的准确性。 2)运算符丰富。由于 MATLAB是用C语言编写的, MATLAB提供了和C语言几乎 样多的运算符,灵活使用 MATLAB的运算符将使程序变得极为简短。 3) MATLAB既具有结构化的控制语句(如for循环, while循环, break语句和诅语句), 又有面向对象编程的特性 4)程序限制不严格,程序设计自由度大。例如,在 MATLAB里,用户无需对矩阵预 定义就可使用。 5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运 6) MATLA B的图形功能强大。在 FORTRAN和C语言里,绘图都很不容易,但在 MA∏LAB里,数据的可视化非常简单。MA∏LAB还具有较强的编辑图形界面的能力。 7) MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于 MATLAB 的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢 8)功能强大的工具箱是 MATLAB的另一特色。 MATLAB包含两个部分:核心部分和 各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又分为两类:功能性工具 箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字 处理功能以及与硬件实时交互功能。功能性工具箱用于多种学科。而学科性工具箱是专业性

算第二部分。解线性方程的麻烦在于要对矩阵的元素作循环,选择稳定的算法以及代码的调 试动不容易。即使有部分源代码,用户也会感到麻烦,且不能保证运算的稳定性。解线性方 程的程序用 FORTRAN 和 C 这样的高级语言编写,至少需要四百多行,调试这种几百行的 计算程序可以说很困难。以下用 MATLAB 编写以上两个小程序的具体过程。 MATLAB 求解下列方程,并求解矩阵 A 的特征值。 Ax=b,其中: A= 32 13 45 67 23 79 85 12 43 23 54 65 98 34 71 35 b= 1 2 3 4 解为:x=A\b;设 A 的特征值组成的向量 e,e=eig(A)。 可见,MATLAB 的程序极其简短。更为难能可贵的是,MATLAB 甚至具有一定的智 能水平,比如上面的解方程,MATLAB 会根据矩阵的特性选择方程的求解方法,所以用户 根本不用怀疑 MATLAB 的准确性。 2)运算符丰富。由于 MATLAB 是用 C 语言编写的,MATLAB 提供了和 C 语言几乎一 样多的运算符,灵活使用 MATLAB 的运算符将使程序变得极为简短。 3)MATLAB 既具有结构化的控制语句(如 for 循环,while 循环,break 语句和 if 语句), 又有面向对象编程的特性。 4)程序限制不严格,程序设计自由度大。例如,在 MATLAB 里,用户无需对矩阵预 定义就可使用。 5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运 行。 6)MATLAB 的图形功能强大。在 FORTRAN 和 C 语言里,绘图都很不容易,但在 MATLAB 里,数据的可视化非常简单。MATLAB 还具有较强的编辑图形界面的能力。 7)MATLAB 的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于 MATLAB 的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。 8)功能强大的工具箱是 MATLAB 的另一特色。MATLAB 包含两个部分:核心部分和 各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又分为两类:功能性工具 箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字 处理功能以及与硬件实时交互功能。功能性工具箱用于多种学科。而学科性工具箱是专业性

比较强的,如 control, oolbox signl proceessing toolbox, commumnication toolbox等。这些工具 箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程 序,而直接进行高,精,尖的研究 9)源程序的开放性。开放性也许是 MATLAB最受人们欢迎的特点。除内部函数以外 所有 MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修 改以及加入自己的文件构成新的工具箱 MATLAB入门教程 1. MATLAB的基本知识 1-1、基本运算与函数 在 MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>)之後,并按入 Enter 键即可。例如: >>(5*2+1.3-0.8)*10/25 ans=4.2000 MATLAB会将运算结果直接存入一变数ans,代表 MATLAB运算後的答案( Answer)并显 示其数值於萤幕上 小提示:">”是MA∏LAB的提示符号( Prompt),但在PC中文视窗系统下,由於编码方 式不同,此提示符号常会消失不见,但这并不会影响到 MATLAB的运算结果。 我们也可将上述运算式的结果设定给另一个变数x: x=(5*2+1.3-0.8)*10~2/25 X=42 此时 MATLAB会直接显示x的值。由上例可知, MATLAB认识所有一般常用到的加(+) 减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^) 小提示: MATLA B将所有变数均存成 double的形式,所以不需经过变数宣告( Variable declaration)。 MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使 用者一一指定这些功能使的 MATLAB易学易用,使用者可专心致力於撰写程式,而不必被 软体枝节问题所干扰。 若不想让 MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例: y=sin(10)*exp(-0.3*42) 若要显示变数y的值,直接键入y即可 y=0.0045 在上例中,sin是正弦函数,exp是指数函数,这些都是 MATLAB常用到的数学函数。 下表即为 MATLAB常用的基本数学函数及三角函数: 小整理: MATLAB常用的基本数学函数

比较强的,如 control,toolbox,signl proceessing toolbox,commumnication toolbox 等。这些工具 箱都是由该领域内学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程 序,而直接进行高,精,尖的研究。 9)源程序的开放性。开放性也许是 MATLAB 最受人们欢迎的特点。除内部函数以外, 所有 MATLAB 的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修 改以及加入自己的文件构成新的工具箱。 MATLAB 入门教程 1.MATLAB 的基本知识 1-1、基本运算与函数 在 MATLAB 下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入 Enter 键即可。例如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB 会将运算结果直接存入一变数 ans,代表 MATLAB 运算後的答案(Answer)并显 示其数值於萤幕上。 小提示: ">>"是 MATLAB 的提示符号(Prompt),但在 PC 中文视窗系统下,由於编码方 式不同,此提示符号常会消失不见,但这并不会影响到 MATLAB 的运算结果。 我们也可将上述运算式的结果设定给另一个变数 x: x = (5*2+1.3-0.8)*10^2/25 x = 42 此时 MATLAB 会直接显示 x 的值。由上例可知,MATLAB 认识所有一般常用到的加(+)、 减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。 小提示: MATLAB 将所有变数均存成 double 的形式,所以不需经过变数宣告(Variable declaration)。MATLAB 同时也会自动进行记忆体的使用和回收,而不必像 C 语言,必须由使 用者一一指定.这些功能使的 MATLAB 易学易用,使用者可专心致力於撰写程式,而不必被 软体枝节问题所干扰。 若不想让 MATLAB 每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例: y = sin(10)*exp(-0.3*4^2); 若要显示变数 y 的值,直接键入 y 即可: >>y y =-0.0045 在上例中,sin 是正弦函数,exp 是指数函数,这些都是 MATLAB 常用到的数学函数。 下表即为 MATLAB 常用的基本数学函数及三角函数: 小整理:MATLAB 常用的基本数学函数

ab(x):纯量的绝对值或向量的长度 anglet(z):复数z的相角( Phase angle) q(x):开平方 real(z):复数z的实部 ag(z):复数z的虚部 con(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor((x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数 rat(x):将实数x化为分数表示 rats(x):将实数x化为多项分数展开 sign(x):符号函数( Signum function) 当x0时,sign(x)= >小整理: MATLAB常用的三角函数 x):正弦函数 cos(x):馀弦函数 tan(x):正切函数 asin(x):反正弦函数 acos(x):反馀弦函数 an(x):反正切函数 atan2(xy):四象限的反正切函数 inh(x):超越正弦函数 cosh(x):超越馀弦函数 tanh(x):超越正切函数 inh(x):反超越正弦函数 acosh(x):反超越馀弦函数 atanh(x):反超越正切函数 变数也可用来存放向量或矩阵,并进行各种运算,如下例的列向量( Row vector)运算 x=[1352 y=371l5

abs(x):纯量的绝对值或向量的长度 angle(z):复 数 z 的相角(Phase angle) sqrt(x):开平方 real(z):复数 z 的实部 imag(z):复数 z 的虚 部 conj(z):复数 z 的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数 rat(x):将实数 x 化为分数表示 rats(x):将实数 x 化为多项分数展开 sign(x):符号函数 (Signum function)。 当 x0 时,sign(x)=1。 > 小整理:MATLAB 常用的三角函数 sin(x):正弦函数 cos(x):馀弦函数 tan(x):正切函数 asin(x):反正弦函数 acos(x):反馀弦函数 atan(x):反正切函数 atan2(x,y):四象限的反正切函数 sinh(x):超越正弦函数 cosh(x):超越馀弦函数 tanh(x):超越正切函数 asinh(x):反超越正弦函数 acosh(x):反超越馀弦函数 atanh(x):反超越正切函数 变数也可用来存放向量或矩阵,并进行各种运算,如下例的列向量(Row vector)运算: x = [1 3 5 2]; y = 2*x+1 y = 3 7 11 5

小提示:变数命名的规则 1.第一个字母必须是英文字母2字母间不可留空格3最多只能有19个字母, MATLAB会 忽略多馀字母 我们可以随意更改、增加或删除向量的元素: y(3)=2%更改第三个元素 y=3725 y(6)=10%加入第六个元素 y=3725010 (4)=口%删除第四个元素 y=372010 在上例中, MATLAB会忽略所有在百分比符号(%)之後的文字,因此百分比之後的文字 均可视为程式的注解( Comments)。 MATLAB亦可取出向量的一个元素或一部份来做运算 x(2)*3+y(4)%取出x的第二个元素和y的第四个元素来做运算 ans=9 y(24)-1%取出y的第二至第四个元素来做运算 ans=61-1 在上例中,24代表一个由2、3、4组成的向量 若对 MATLAB函数用法有疑问,可随时使用help来寻求线上支援(on- cline help) help linspace 小整理: MATLAB的查询命令 help:用来查询已知命令的用法。例如已知inv是用来计算反矩阵,键入 help inv即可得知 有关inv命令的用法。(键入 help help则显示help的用法,请试看看!) lookfor:用来寻找 未知的命令。例如要寻找计算反矩阵的命令,可键入 lookfor inverse, MATLAB即会列出所 有和关键字 Inverse相关的指令。找到所需的命令後,即可用help进一步找出其用法。 ( lookfor事实上是对所有在搜寻路径下的M档案进行关键字对第一注解行的比对,详见後 将列向量转置( Transpose)後,即可得到行向量( Column vector) z=4.0000 5.2000 6.4000 7.6000 8.8000 10.0000

小提示:变数命名的规则 1.第一个字母必须是英文字母 2.字母间不可留空格 3.最多只能有 19 个字母,MATLAB 会 忽略多馀字母 我们可以随意更改、增加或删除向量的元素: y(3) = 2 % 更改第三个元素 y =3 7 2 5 y(6) = 10 % 加入第六个元素 y = 3 7 2 5 0 10 y(4) = [] % 删除第四个元素, y = 3 7 2 0 10 在上例中,MATLAB 会忽略所有在百分比符号(%)之後的文字,因此百分比之後的文字 均可视为程式的注解(Comments)。MATLAB 亦可取出向量的一个元素或一部份来做运算: x(2)*3+y(4) % 取出 x 的第二个元素和 y 的第四个元素来做运算 ans = 9 y(2:4)-1 % 取出 y 的第二至第四个元素来做运算 ans = 6 1 -1 在上例中,2:4 代表一个由 2、3、4 组成的向量 若对MATLAB函数用法有疑问,可随时使用help来寻求线上支援(on-line help):help linspace 小整理:MATLAB 的查询命令 help:用来查询已知命令的用法。例如已知 inv 是用来计算反矩阵,键入 help inv 即可得知 有关 inv 命令的用法。(键入 help help 则显示 help 的用法,请试看看!) lookfor:用来寻找 未知的命令。例如要寻找计算反矩阵的命令,可键入 lookfor inverse,MATLAB 即会列出所 有和关键字 inverse 相关的指令。找到所需的命令後 ,即可用 help 进一步找出其用法。 (lookfor 事实上是对所有在搜寻路径下的 M 档案进行关键字对第一注解行的比对,详见後 叙。) 将列向量转置(Transpose)後,即可得到行向量(Column vector): z = x' z = 4.0000 5.2000 6.4000 7.6000 8.8000 10.0000

不论是行向量或列向量,我们均可用相同的函数找出其元素个数、最大值、最小值等: length(z)%z的元素个数 =6 max(z)%z的最大值 min(z)%z的最小值 小整理:适用於向量的常用函数有 min(x):向量x的元素的最小值 max(x)向量x的元素的最大值 mean(x).向量x的元素的平均值 median(x):向量x的元素的中位数 std(x):向量x的元素的标准差 diff(x):向量x的相邻元素的差 sort(x):对向量x的元素进行排序( Sorting) length(x)向量x的元素个数 norm(x)向量x的欧氏( Euclidean)长度 m(x):向量x的元素总和 prod(x)向量x的元素总乘积 cumsum(x):向量x的累计元素总和 cumprod(x):向量x的累计元素总乘积 dox,y)向量x和y的内积 cross(x,y).向量x和y的外积(大部份的向量函数也可适用於矩阵,详见下述。) 若要输入矩阵,则必须在每一列结尾加上分号(:),如下例: 1234;5678:9101112 1234 5678 9101112 同样地,我们可以对矩阵进行各种处理 A(2,3)=5%改变位於第二列,第三行的元素值

不论是行向量或列向量,我们均可用相同的函数找出其元素个数、最大值、最小值等: length(z) % z 的元素个数 ans = 6 max(z) % z 的最大值 ans = 10 min(z) % z 的最小值 ans = 4 小整理:适用於向量的常用函数有: min(x): 向量 x 的元素的最小值 max(x): 向量 x 的元素的最大值 mean(x): 向量 x 的元素的平均值 median(x): 向量 x 的元素的中位数 std(x): 向量 x 的元素的标准差 diff(x): 向量 x 的相邻元素的差 sort(x): 对向量 x 的元素进行排序(Sorting) length(x): 向量 x 的元素个数 norm(x): 向量 x 的欧氏(Euclidean)长度 sum(x): 向量 x 的元素总和 prod(x): 向量 x 的元素总乘积 cumsum(x): 向量 x 的累计元素总和 cumprod(x): 向量 x 的累计元素总乘积 dot(x, y): 向量 x 和 y 的内 积 cross(x, y): 向量 x 和 y 的外积 (大部份的向量函数也可适用於矩阵,详见下述。) 若要输入矩阵,则必须在每一列结尾加上分号(;),如下例: A = [1 2 3 4; 5 6 7 8; 9 10 11 12]; A = 1 2 3 4 5 6 7 8 9 10 11 12 同样地,我们可以对矩阵进行各种处理: A(2,3) = 5 % 改变位於第二列,第三行的元素值 A =

1234 5658 9101112 B=A(2,1:3)%取出部份矩阵B B=565 [AB%将B转置後以行向量并入A 12345 56586 910l1125 A(,2)=口%删除第二行(:代表所有列) 1345 5586 91l125 A=[A43211%加入第四列 911125 4321 A([14],)=口%删除第一和第四列(:代表所有行) 586 911125 这几种矩阵处理的方式可以相互叠代运用,产生各种意想不到的效果,就看各位的巧思和创 小提示:在 MATLAB的内部资料结构中每一个矩阵都是一个以行为主( Column- oriented) 的阵列(Aray)因此对於矩阵元素的存取,我们可用一维或二维的索引( Index)来定址。 举例来说,在上述矩阵A中,位於第二列、第三行的元素可写为A(2,3)(二维索引)或 A(6)(一维索引,即将所有直行进行堆叠後的第六个元素)。 此外,若要重新安排矩阵的形状,可用 reshape命令: B= reshape(A,4,2)%4是新矩阵的列数,2是新矩阵的行数

1 2 3 4 5 6 5 8 9 10 11 12 B = A(2,1:3) % 取出部份矩阵 B B = 5 6 5 A = [A B'] % 将 B 转置後以行向量并入 A A = 1 2 3 4 5 5 6 5 8 6 9 10 11 12 5 A(:, 2) = [] % 删除第二行(:代表所有列) A = 1 3 4 5 5 5 8 6 9 11 12 5 A = [A; 4 3 2 1] % 加入第四列 A = 1 3 4 5 5 5 8 6 9 11 12 5 4 3 2 1 A([1 4], :) = [] % 删除第一和第四列(:代表所有行) A = 5 5 8 6 9 11 12 5 这几种矩阵处理的方式可以相互叠代运用,产生各种意想不到的效果,就看各位的巧思和创 意。 小提示:在 MATLAB 的内部资料结构中,每一个矩阵都是一个以行为主(Column-oriented ) 的阵列(Array)因此对於矩阵元素的存取,我们可用一维或二维的索引(Index)来定址。 举例来说,在上述矩阵 A 中,位於第二列、第三行的元素可写为 A(2,3) (二维索引)或 A(6)(一维索引,即将所有直行进行堆叠後的第六个元素)。 此外,若要重新安排矩阵的形状,可用 reshape 命令: B = reshape(A, 4, 2) % 4 是新矩阵的列数,2 是新矩阵的行数 B =

595 小提示:A()就是将矩阵A每一列堆叠起来,成为一个行向量,而这也是 MATLAB变数的 内部储存方式。以前例而言, reshape(A,8,1)和A()同样都会产生一个8x1的矩阵 MATLAB可在同时执行数个命令,只要以逗号或分号将命令隔开 x=sin(pi/3),y=x^2;z=y*10, 7.5000 若一个数学运算是太长,可用三个句点将其延伸到下一行 Z=10*sin(pi/3)* 若要检视现存於工作空间( Workspace)的变数,可键入who: Your variables are testfile x 这些是由使用者定义的变数。若要知道这些变数的详细资料,可键入: Name Size Bytes Clas A 2x4 64 double array B 4x2 64 double array ans lxl 8 double array x Ixl 8 double array y lxl 8 double array z lxl 8 double array Grand total is 20 elements using 160 bytes 使用 clear可以删除工作空间的变数: ?29 Undefined function or variable 'A' 另外 MATLAB有些永久常数( Permanent constants),虽然在工作空间中看不到,但使用者 可直接取用,例如

5 8 9 12 5 6 11 5 小提示: A(:)就是将矩阵 A 每一列堆叠起来,成为一个行向量,而这也是 MATLAB 变数的 内部储存方式。以前例而言,reshape(A, 8, 1)和 A(:)同样都会产生一个 8x1 的矩阵。 MATLAB 可在同时执行数个命令,只要以逗号或分号将命令隔开: x = sin(pi/3); y = x^2; z = y*10, z = 7.5000 若一个数学运算是太长,可用三个句点将其延伸到下一行: z = 10*sin(pi/3)* ... sin(pi/3); 若要检视现存於工作空间(Workspace)的变数,可键入 who: who Your variables are: testfile x 这些是由使用者定义的变数。若要知道这些变数的详细资料,可键入: whos Name Size Bytes Class A 2x4 64 double array B 4x2 64 double array ans 1x1 8 double array x 1x1 8 double array y 1x1 8 double array z 1x1 8 double array Grand total is 20 elements using 160 bytes 使用 clear 可以删除工作空间的变数: clear A A ??? Undefined function or variable 'A'. 另外 MATLAB 有些永久常数(Permanent constants),虽然在工作空间中看不 到,但使用者 可直接取用,例如: pi

ans=3.1416 下表即为 MATLAB常用到的永久常数 小整理: MATLAB的永久常数i或j:基本虚数单位 eps:系统的浮点( Floating- point)精确度 inf:无限大,例如1/nan或NaN:非数值( Not a number),例如0/0 圆周率p(=3.1415926.) ealmax:系统所能表示的最大数值 almin:系统所能表示的最小数值 nargin:函数的输入引数个数 nargIn:函数的输出引数个数 1-2、重复命令 最简单的重复命令是for圈( for-loop),其基本形式为 for变数=矩阵 运算式 其中变数的值会被依次设定为矩阵的每一行,来执行介於for和end之间的运算式。因此 若无意外情况,运算式执行的次数会等於矩阵的行数 举例来说,下列命令会产生一个长度为6的调和数列( Harmonic sequence) x= zeros(1,6);%x是一个16的零矩阵 1:6 (i)=1/ 在上例中,矩阵x最初是一个16的零矩阵,在for圈中,变数i的值依次是1到6,因此 矩阵x的第i个元素的值依次被设为1/。我们可用分数来显示此数列 format rat%使用分数来表示数值 l1/21/31/41/51/6 for圈可以是多层的,下例产生一个16的 Hilbert矩阵h,其中为於第i列、第j行的元素为 h=zeros(6) for i=1: 6 forj=1: 6 h(1j)=1/(计+j-1)

ans = 3.1416 下表即为 MATLAB 常用到的永久常数。 小整理:MATLAB 的永久常数 i 或 j:基本虚数单位 eps:系统的浮点(Floating-point)精确度 inf:无限大, 例如 1/0 nan 或 NaN:非数值(Not a number) ,例如 0/0 pi:圆周率 p(= 3.1415926...) realmax:系统所能表示的最大数值 realmin:系统所能表示的最小数值 nargin: 函数的输入引数个数 nargin: 函数的输出引数个数 1-2、重复命令 最简单的重复命令是 for 圈(for-loop),其基本形式为: for 变数 = 矩阵; 运算式; end 其中变数的值会被依次设定为矩阵的每一行,来执行介於 for 和 end 之间的运算式。因此, 若无意外情况,运算式执行的次数会等於矩阵的行数。 举例来说,下列命令会产生一个长度为 6 的调和数列(Harmonic sequence): x = zeros(1,6); % x 是一个 16 的零矩阵 for i = 1:6, x(i) = 1/i; end 在上例中,矩阵 x 最初是一个 16 的零矩阵,在 for 圈中,变数 i 的值依次是 1 到 6,因此 矩阵 x 的第 i 个元素的值依次被设为 1/i。我们可用分数来显示此数列: format rat % 使用分数来表示数值 disp(x) 1 1/2 1/3 1/4 1/5 1/6 for 圈可以是多层的,下例产生一个 16 的 Hilbert 矩阵 h,其中为於第 i 列、第 j 行的元素为 h = zeros(6); for i = 1:6, for j = 1:6, h(i,j) = 1/(i+j-1); end end

点击下载完整版文档(DOC)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共23页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有