第2章 MATLAB语言基础.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第2章 MATLAB语言基础.doc》由会员分享,可在线阅读,更多相关《第2章 MATLAB语言基础.doc(109页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、MATLAB 语言简介MATLAB 语言当今国际上科学界 (尤其自动控制领域) 最具影响力、最有活力的软件。它起源于矩阵运算,已经发展成一种高度集成的交互式计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。由于其特色,它在各国高校与研究单位的控制系统仿真中起着重大的作用。 MATLAB 语言由美国Math Works公司开发,其最新版为 MATLAB 7.11 (2010.9.3)MATLAB 语言起源MATLAB 语言首创者 Cleve Moler 在数值分析,特别是在数值线性代数的领域中很有影响。他曾在密西根大学、斯坦福
2、大学和新墨西哥大学任数学与计算机科学教授。1980年Moler 在讲授线性代数课程时,发现了用其他高级语言编程极为不便,便构思并开发了MATLAB, 这一软件利用了当时数值线性代数领域最高水平的EISPACK 和 LINPACK两大软件包中可靠的子程序,用Fortran语言编写了集命令翻译、科学计算于一身的一套交互式软件系统。交互式语言n 交互式语言:指人们给出一条命令,立即就可以得出该命令的结果。n 该语言无需像C语言那样,首先要求使用者去编写源程序,然后对之进行编译、连接,最终形成可执行文件。这无疑会给使用者带来了极大的方便。n 早期的MATLAB是用Fortran语言编写的,只能作矩阵运
3、算和简单绘图;内部函数也只提供了几十个。Moler等人成立了MathWorks的公司。84 年推出了MATLAB 的商业版本。当时的MATLAB 版本已经用 C 语言作了完全的改写,其后又增添了丰富多彩的图形图像处理、多媒体功能、符号运算和它与其他流行软件的接口功能,使MATLAB 的功能越来越强大。MATLAB 功能和发展n 92 年推出了4.0 版本, 可以配合 Windows 使用。n 94 年推出的 4.2 版本扩充了功能,尤其在图形界面设计方面更提供了新的方法。n 97 年推出的 5.0 版允许了更多的数据结构,如单元数据、数据结构体、多维矩阵、对象与类等,使其成为一种更方便编程的语
4、言。n 99 年初推出的 5.3 版在很多方面又进一步改进了MATLAB 语言的功能。n 00 年 底推出了其全新的 6.0 正式版,在核心数值算法、界面设计、外部接口、应用桌面等诸多方面有了极大的改进。n 02年6.5 正式版 ; 04年7.0 正式版n MATLAB 语言是计算数学专家倡导并开发的,但有代表性的成就和控制界的要求与贡献是分不开的。大多数工具箱也都是控制方面的。它在工程领域的应用越来越广,并且有着更广阔的应用前景.MATLAB的特色(1)数学运算能力强大n 考虑两个矩阵 A 和 B 的乘积问题,在 C 语言中要实现两个矩阵的乘积并不仅仅是一组双重循环的问题。除此之外要考虑的问
5、题 A 和 B 是复数矩阵怎么考虑; 其中一个是复数矩阵时怎么考虑; 全部是实系数矩阵时又怎么管理; 判断这两个矩阵是否可乘;等等 所以说,没有一定的时间,用 C 语言很难编写出考虑各种情况的子程序。有了 MATLAB 这样的工具,A 和 B 矩阵的乘积用 A*B 这样简单的算式就能表示了。例:如何生成一个 3x3 魔方矩阵将自然数 1, 2, ., 9 分别置成这 9个矩阵元素,怎样才能使得每一行每一列、且主、反对角线上元素相加都等于一个相同的数。用 MATLAB 的 magic() 函数,我们可以由下面的命令立即生成这样的矩阵: A=magic(3)A = 8 1 6 3 5 7 4 9
6、2可以由 B=magic(10) 一次生成 10x10 的魔方矩阵。 如果想求出矩阵的行列式和特征值,可以由 det(B) 与 eig(B) 立即得出结果,而同样的工作在 C 下并不是很简单就可以得出的,算法选择不好,还可能得出错误的结果。 (2) 绘制图形方便、美观、准确第二章 MATLAB语言基础MATLAB语言源自线性代数中的数学运算,最初是基于矩阵的运算工具,这也是MATLAB(Matrix Laboratory)的由来。2.1矩阵的运算MATLAB语言最基本、最重要的功能就是进行实数或复数的矩阵运算,其所有的数值功能都以矩阵为基本单元来实现。2.1.1矩阵的输入分为直接赋值法和增量赋
7、值法1. 直接赋值法矩阵的输入必须以方括号“ ”作为其开始和结束的标志,矩阵的行与行之间要用分号;,每行内的元素用空格或逗号分开。 a=1 2 3;4 5 6;7 8 9或 a=1,2,3;4,5,6;7,8,9或 a=1 2 3;4,5,6;7,8,9 %逗号和空格可同时出现结果是:a = 1 2 3 4 5 6 7 8 9对于比较大的矩阵,可用回车键代替分号,对同一行的内容也可利用续行符号“”,把一行的内容分两行来输入。 a=1,2,3 4,5,6 7,8,9或 a=1,2,3;4,5,. 6;7,8,9结果仍然是:a = 1 2 3 4 5 6 7 8 9MATLAB语言的变量名称字符区
8、分大小写,字符A与a是两个不同的矩阵变量名。在MATLAB语言命令行的最后如果加上分号;,则在命令窗口中不会显示输入命令所得到的结果。2. 增量赋值法增量赋值法的格式:A=初值:增量:终值如: A=1:0.5:2结果是:A = 1.0000 1.5000 2.0000该方法生成的实际为行向量若增量为1时,可写成:A=初值:终值如: B=1:5结果是:B = 1 2 3 4 5 B=1:5;6:10;11:15结果是:B = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15MATLAB允许把矩阵作为元素来建立新的矩阵如: b=a;10,11,12或 b=a;10,11,12
9、结果是:b = 1 2 3 4 5 6 7 8 9 10 11 12矩阵元素可用任何表达式来描述,如: c=1,2,sqrt(2),2*pi,pi/2结果是:c = 1.0000 2.0000 1.4142 6.2832 1.5708执行结果为整数时,则系统按整数进行显示,若执行结果为实数,则按小数后4位有效数字(系统默认,可改变,如在命令窗口输入format long,则显示小数后15位有效数字)来近似表示结果。矩阵赋值后,将一直保存在工作空间中,除非被替代或清除(clear)。利用 size()函数可测取一个矩阵(或向量)的维数,该函数的调用格式为:m,n=size(A)其中,m,n分别为
10、A矩阵的行数和列数,A为要测试的矩阵名。例: m,n=size(b)m = 4n = 3 c=size(b,1) %求表示矩阵b维数的第一项,因为b是43c = % 维的,即第一项是行数,所以c=44 d=size(b,2) %第二项是列数,所以d=3d =3若采取 size(b)ans = 4 3如果未定义变量,运算后产生的结果将自动赋给默认变量ans,变量ans的值将在下条语句(未定义变量)执行后被刷新。length(A):若A为向量,则返回向量A中元素的个数,若A为矩阵,则返回矩阵A中行数和列数的最大值。2.1.2矩阵的元素1.矩阵的下标(1)全下标标识第i行第 j列的元素表示为A(i,
11、j)。该方法在MATLAB语言中最为常用,如A(2,2)。如果在提起矩阵的元素时,矩阵元素的行下标i或列下标j大于矩阵的维数m或n时,系统会提示出错。如: a=1,2,3;4,5,6;7,8,9; a(2,2)ans = 5 a(4,4)? Index exceeds matrix dimensions.(2)单下标标识就是将矩阵中的列按从左到右的顺序连成“一维长列”,然后对元素位置进行编号。一个mn的矩阵A的单下标表示为A(S),与全下标A(i,j)的对应关系为S= (j-1)m+i。 例: A=1,2,3;4,5,6;7,8,9A = 1 2 3 4 5 6 7 8 9 A(2)ans =
12、 4 A(8)ans = 6 B=A(:) %在MATLAB中单独使用冒号“:”,B = 代替下标表示矩阵所有元素或行(列) 1 A(:) is all the elements of A, regarded as a single column 4 7 2 5 8 3 6 92.子矩阵的产生因为子矩阵是从对应矩阵中取出一部分元素构成的,所以可用全下标和单下标两种方法产生。例: A=1,2,3,4;5,6,7,8;9,10,11,12A = 1 2 3 4 5 6 7 8 9 10 11 12 A(1,2,3,4)ans = 3 4 7 8 A(1,2,3,4)ans = 1 5 9 2 A(
13、1,2;3,4)ans = 1 5 9 2 A(:,3)ans = 3 7 11 A(1:3,2:3)ans = 2 3 6 7 10 11 A(1:3,2:3)ans = 1 5 9 5 9 A(end,1:4) % end表示某一维阶数的最大值ans = 9 10 11 123.矩阵元素的赋值分为全下标方式和单下标方式(1) 全下标方式 A=1,2,3;4,5,6;7,8,9A = 1 2 3 4 5 6 7 8 9 A(1:2,1:3)=1,1,1;1,1,1A = 1 1 1 1 1 1 7 8 9 A(3,3)=A(1,1)+A(3,3) %有分号;则不显示结果A = 1 1 1 1
14、 1 1 7 8 10而在对矩阵元素赋值时,如果行或列下标数值(i或j)超出矩阵的维数m或n时,则系统会自动扩充矩阵,扩充部分未被赋值的元素值以0填充。如(接上例): A(4,4)=9A = 1 1 1 0 1 1 1 0 7 8 10 0 0 0 0 9(2) 单下标方式例1: B=1,2,3;4,5,6;7,8,9B = 1 2 3 4 5 6 7 8 9 B(2)=100B = 1 2 3 100 5 6 7 8 9 B(5:6)=100,100 %注意B(5:6)中的冒号B = 1 2 3 100 100 6 7 100 9例2: A=1,2;3,4;5,6A = 1 2 3 4 5
15、6 B=1,2,3;4,5,6B = 1 2 3 4 5 6 A(:)=B %全元素方式,要求A,B的元素个数相等(行列数可以不相等)A = 1 5 4 3 2 6 C=A(:)C = 1 4 2 5 3 6 D=A(:,:)D = 1 5 4 3 2 62.1.3复数矩阵虚数单位用字母i或j表示,但实际j在MATLAB中显示成i。例1:复数Z1=1+2i,Z2=3+4i,Z3=2的MATLAB输入,并计算Z=Z1Z2/Z3。解: Z1=1+2i或 Z1=1+2*i或 Z1=1+2*j结果都为:Z1 = 1.0000 + 2.0000i Z2=3+4i; Z3=2*exp(pi*i/6); Z
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 MATLAB语言基础 MATLAB 语言 基础
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内