Matlab用法简介
绪 论
Matlab是“Matrix Laboratory”的缩写,意为“矩阵实验室”,是当今美国很流行的科学计算软件.信息技术、计算机技术发展到今天,科学计算在各个领域得到了广泛的应用.在许多诸如控制论、时间序列分析、系统仿真、图像信号处理等方面产生了大量的矩阵及其相应的计算问题.自己去编写大量的繁复的计算程序,不仅会消耗大量的时间和精力,减缓工作进程,而且往往质量不高.美国Mathwork软件公司推出的Matlab软件就是为了给人们提供一个方便的数值计算平台而设计的.
Matlab是一个交互式的系统,它的基本运算单元是不需指定维数的矩阵,按照IEEE的数值计算标准(能正确处理无穷数Inf(Infinity)、无定义数NaN(not-a-number)及其运算)进行计算.系统提供了大量的矩阵及其它运算函数,可以方便地进行一些很复杂的计算,而且运算效率极高.Matlab命令和数学中的符号、公式非常接近,可读性强,容易掌握,还可利用它所提供的编程语言进行编程完成特定的工作.除基本部分外,Matlab还根据各专门领域中的特殊需要提供了许多可选的工具箱,如应用于自动控制领域的Control System工具箱和神经网络中Neural Network工具箱等.
第一节 Matlab的安装及使用
§1.1 Matlab的安装
Matlab有各种版本,早期有Matlab 1.0 for 386的DOS版本,后来逐步发展.这里介绍的版本是Matlab 6.x for Windows.因为它使用方便,界面美观,我们选择它作为主要讲解版本.Matlab还有许多附加的部分,最常见的部分称为Simulink,是一个用作系统仿真的软件包,它可以让您定义各种部件,定义各自对某种信号的反应方式及与其它部件的连接方式.最后选择输入信号,系统会仿真运行整个模拟系统,并给出统计数据.Simulink有时是作为Matlab的一部分提供的,称为Matlab with Simulink版本.Matlab还有许多工具箱,它们是根据各个特殊领域的需要,用Matlab自身的语言编写的程序集,使用起来非常方便.您可以视工作性质和需要购买相应的工具箱.常见的工具箱有: Signal Process System Identification 系统辨识 信号处理 Optimization Neural Network 优化 神经网络 Control System Spline 自动控制 样条 Symbolic Math Image Process 符号代数 图像处理 Nonlinear Control Statistics 非线性控制 统计 §1.2 Matlab基本用法
从Windows中双击Matlab图标,会出现Matlab命令窗口(Command Window),在一段提示信息后,出现系统提示符“>>”.Matlab是一个交互系统,您可以在提示符后键入各种命令,通过上下箭头可以调出以前打入的命令,用滚动条可以查看以前的命令及其输出信息.
如果对一条命令的用法有疑问的话,可以用Help菜单中的相应选项查询有关信息,也可以用help命令在命令行上查询,您可以试一下help、help help和help eig(求特征值的函数)命令.
5
下面我们先从输入简单的矩阵开始掌握Matlab的功能.
§1.2.1输入简单的矩阵
输入一个小矩阵的最简单方法是用直接排列的形式.矩阵用方括号括起,元素之间用空格或逗号分隔,矩阵行与行之间用分号分开.例如输入:
A=[1 2 3 ; 4 5 6 ; 7 8 0] 系统会回答
A =
1 2 3 4 5 6 7 8 0
表示系统已经接收并处理了命令,在当前工作区内建立了矩阵A. 大的矩阵可以分行输入,用回车键代替分号,如:
A=[ 1 2 3
4 5 6 7 8 0 ]
结果和上式一样,也是
A =
1 2 3 4 5 6 7 8 0 §1.2.2矩阵元素
Matlab的矩阵元素可以是任何数值表达式.如:
x=[ -1.3 sqrt(3) (1+2+3)*4/5] 结果:
x =
-1.3000 1.7321 4.8000
在括号中加注下标,可取出单独的矩阵元素.如:
x(5)=abs(x(1)) 结果
x =
-1.3000 1.7321 4.8000 0 1.3000
注:结果中自动产生了向量的第5个元素,中间未定义的元素自动初始为零. 大的矩阵可把小的矩阵作为其元素来完成,如:
A=[A; [10 11 12]] 结果
A =
1 2 3 4 5 6 7 8 0 10 11 12
小矩阵可用“:”从大矩阵中抽取出来,如:
A=A(1:3,:);
即从A中取前三行和所有的列,重新组成原来的A. (详细介绍参见第二节的相关内容) §1.2.3语句和变量
Matlab的表述语句、变量的类型说明由Matlab系统解释和判断.Matlab语句通常形式为:
变量=表达式
或者使用其简单形式为: 表达式
表达式由操作符或其它特殊字符、函数和变量名组成.表达式的结果为一个矩阵,显示
6
在屏幕上,同时保存在变量中以留用.如果变量名和“=”省略,则具有ans名(意思指回答)的变量将自动建立.例如:
键入1900/81 结果为:
ans =
23.4568
需注意的问题有以下几点:
? 语句结束键入回车键,若语句的最后一个字符是分号,即“;”,则表明不输出当前
命令的结果.
? 如果表达式很长,一行放不下,可以键入“…”(三个点,但前面必须有个空格,
目的是避免将形如“数2 …”理解为“数2.”与“..”的连接,从而导致错误),然后回车.
? 变量和函数名由字母加数字组成,但最多不能超过63个字符,否则系统只承认前
63个字符.
? Matlab变量字母区分大小写,如A和a不是同一个变量,函数名一般使用小写字
母,如inv(A)不能写成INV(A),否则系统认为未定义函数. §1.2.4 who和系统预定义变量
输入who命令可检查工作空间中建立的变量,键入:
who
系统输出为:
Your variables are:
A ans x
这里表明三个变量已由前面的例子产生了.
但列表中列出的并不是系统全部的变量,系统还有以下内部变量: eps、pi、Inf、NaN
变量eps在决定诸如矩阵的奇异性时,可作为一个容许差,容许差的初值为1.0到1.0以后计算机所能表示的下一个最大浮点数,IEEE在各种计算机、工作站和个人计算机上使用这个算法.用户可将此值置为任何其它值(包括0值).Matlab的内部函数pinc和rank以eps为缺省的容许差.
变量pi是?,它是用imag(log(-1))建立的. Inf表示无穷大.如果您想计算1/0
S=1/0 结果会是
Warning:Divide by zero
S=Inf
具有IEEE规则的机器,被零除后,并不引出出错条件或终止程序的运行,而产生一个警告信息和一个特殊值在计算方程中列出来.
变量NaN表示它是个不定值.由Inf/Inf或0/0运算产生. 要了解当前变量的信息请键入whos,屏幕将显示:
Name Size Bytes Class A 4x3 96 double array S 1x1 8 double array ans 1x1 8 double array x 1x5 40 double array Grand total is 19 elements using 152 bytes
从size及bytes项目可以看出,每一个矩阵实元素需8个字节的内存.4×3的矩阵使用96个字节,全部变量的使用内存总数为152个字节.自由空间的大小决定了系统变量的多少,如计算机上有虚拟内存的话,其可定义的变量个数会大大增加. §1.2.5数和算术表达式
Matlab中数的表示方法和一般的编程语言没有区别.如:
7
3 -99 0.0001 9.63972 1.6021E-20 6.02252e23
在计算中使用IEEE浮点算法其舍入误差是eps.浮点数表示范围是10-308~10308. 数学运算符有:
+ 加 - 减 * 乘 / 右除 \\ 左除 ^ 幂
这里1/4和4\\1有相同的值都等于0.25(注意比较:1\\4=4).只有在矩阵的除法时左除和右除才有区别.
§1.2.6复数与矩阵
在Matlab中输入复数首先应该建立复数单位:
i=sqrt(-1) 及j=sqrt(-1)
之后复数可由下面语句给出:
Z=3+4i (注意: 在4与i之间不要留有任何空间!) 输入复数矩阵有两个方便的方法,如:
A=[1 2; 3 4] + i*[5 6; 7 8] 和 A=[1+5i 2+6i; 3+7i 4+8i]
两式具有相等的结果.但当复数作为矩阵的元素输入时,不要留有任何空间,如1+5i,如在“+”号左右留有空格,就会被认为是两个分开的数.
不过实际使用复数时并没有这么麻烦,系统有一个名为startup.m的Matlab命令文件,建立复数单位的语句也放在其中.当Matlab启动时,此文件自动执行,i和j将自动建立. §1.2.7输出格式
任何Matlab语句执行结果都可在屏幕上显示,同时赋给指定的变量,没有指定变量时赋给ans.数字显示格式可由format命令来控制(Windows系统下的Matlab系统的数字显示格式可以由Option菜单中的Numerical Format菜单改变).format仅影响矩阵的显示,不影响矩阵的计算与存贮.(Matlab以双精度执行所有的运算)
首先,如果矩阵元素是整数则矩阵显示就没有小数,如x=[-1 0 1],结果为: x= -1 0 1
如果矩阵元素不是整数则输出形式有:(用命令:format 格式进行切换) 格式 中文解释 说明 format Default. Same as SHORT 短格式 (缺省格式) format short Scaled fixed point format with 5 digits 短格式 (只显示五位十进制数) (缺省格式) format long Scaled fixed point format with 15 digits 长格式 format short e Floating point format with 5 digits 短格式e方式 format long e Floating point format with 15 digits 长格式e方式 format short g Best of fixed or floating point format with 5 digits 短格式g方式 format long g Best of fixed or floating point format with 15 digits 长格式g方式 format hex Hexadecimal format 16进制格式 format + The symbols +, - and blank are printed +格式 for positive, negative and zero elements. Imaginary parts are ignored format bank Fixed format for dollars and cents 银行格式
8
相关推荐: