第2章 MATLAB语言基础
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB 语言简介
MATLAB 语言——当今国际上科学界(尤其自动控制领域) 最具影响力、最有活力的软件。它起源于矩阵运算,已经发展成一种高度集成的交互式计算机语言。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。由于其特色,它在各国高校与研究单位的控制系统仿真中起着重大的作用。
MATLAB 语言由美国Math Works公司开发,其最新版为MATLAB 7.11 (2010.9.3)
MATLAB 语言起源
MATLAB 语言首创者Cleve Moler 在数值分析,特别是在数值线性代数的领域中很有影响。他曾在密西根大学、斯坦福大学和新墨西哥大学任数学与计算机科学教授。1980年Moler 在讲授线性代数课程时,发现了用其他高级语言编程极为不便,便构思并开发了MATLAB, 这一软件利用了当时数值线性代数领域最高水平的EISPACK 和LINPACK两大软件包中可靠的子程序,用Fortran语言编写了集命令翻译、科学计算于一身的一套交互式软件
系统。
交互式语言
⏹交互式语言:指人们给出一条命令,立即就可以得出该
命令的结果。
⏹该语言无需像C语言那样,首先要求使用者去编写源
程序,然后对之进行编译、连接,最终形成可执行文件。这无疑会给使用者带来了极大的方便。
⏹早期的MATLAB是用Fortran语言编写的,只能作
矩阵运算和简单绘图;内部函数也只提供了几十个。
Moler等人成立了MathWorks的公司。84 年推出了MATLAB 的商业版本。当时的MATLAB 版本已经用C 语言作了完全的改写,其后又增添了丰富多彩的图形图像处理、多媒体功能、符号运算和它与其他流行软件的接口功能,使MATLAB 的功能越来越强大。
MATLAB 功能和发展
⏹92 年推出了4.0 版本, 可以配合Windows 使用。
⏹94 年推出的4.2 版本扩充了功能,尤其在图形界面
设计方面更提供了新的方法。
⏹97 年推出的5.0 版允许了更多的数据结构,如单元
数据、数据结构体、多维矩阵、对象与类等,使其成为一种更方便编程的语言。
⏹99 年初推出的 5.3 版在很多方面又进一步改进了
MATLAB 语言的功能。
⏹00 年底推出了其全新的6.0 正式版,在核心数值算
法、界面设计、外部接口、应用桌面等诸多方面有了极大的改进。
⏹02年6.5 正式版——; 04年7.0 正式版——
⏹MATLAB 语言是计算数学专家倡导并开发的,但有
代表性的成就和控制界的要求与贡献是分不开的。大多数工具箱也都是控制方面的。它在工程领域的应用越来越广,并且有着更广阔的应用前景.
MATLAB的特色
(1)数学运算能力强大
⏹考虑两个矩阵A 和B 的乘积问题,在C 语言中
要实现两个矩阵的乘积并不仅仅是一组双重循环的问题。除此之外要考虑的问题
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 2
可以由B=magic(10) 一次生成10x10 的魔方矩阵。
如果想求出矩阵的行列式和特征值,可以由det(B) 与eig(B) 立即得出结果,而同样的工作在C 下并不是很简单就可以得出的,算法选择不好,还可能得出错误的结果。
(2)绘制图形方便、美观、准确
第二章MATLAB语言基础
MATLAB语言源自线性代数中的数学运算,最初是基于矩阵的运算工具,这也是MATLAB (Matrix Laboratory)的由来。
2.1矩阵的运算
MATLAB语言最基本、最重要的功能就是进行实数或复数的矩阵运算,其所有的数值功能都以矩阵为基本单元来实现。
2.1.1矩阵的输入
分为直接赋值法和增量赋值法
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 9
MATLAB语言的变量名称字符区分大小写,字符A 与a是两个不同的矩阵变量名。在MATLAB语言命令行的最后如果加上分号‘;’,则在命令窗口中不会显示输入