| 
本帖最后由 thinkfunny 于 2019-12-16 11:15 编辑 % x* g3 _+ g8 g9 E3 R1 J
x
EDA365欢迎您登录!您需要 登录 才可以下载或查看,没有帐号?注册  9 B$ d4 C1 [5 j; x
 §1.1 Matlab的安装
 版本Matlab 6.x for Windows.因为它使用方便,界面美观,我们选择它作为主要讲解版本.Matlab还有许多附加的部分,最常见的部分称为Simulink,是一个用作系统仿真的软件包,它可以让您定义各种部件,定义各自对某种信号的反应方式及与其它部件的连接方式.最后选择输入信号,系统会仿真运行整个模拟系统,并给出统计数据.Simulink有时是作为Matlab的一部分提供的,称为Matlab with Simulink版本.Matlab还有许多工具箱,它们是根据各个特殊领域的需要,用Matlab自身的语言编写的程序集,使用起来非常方便.您可以视工作性质和需要购买相应的工具箱.常见的工具箱有: , s! J% s% z9 u) u! Q, u' i" G| 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),在一段提示信息后,出现系统提示符“>>”.您可以在提示符后键入各种命令,通过上下箭头可以调出以前打入的命令,用滚动条可以查看以前的命令及其输出信息. 如果对一条命令的用法有疑问的话,可以用Help菜单中的相应选项查询有关信息,也可以用help命令在命令行上查询,您可以试一下help、help help和help eig(求特征值的函数)命令. 下面我们先从输入简单的矩阵开始掌握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语句通常形式为: 变量=表达式 或者使用其简单形式为: 表达式 表达式由操作符或其它特殊字符、函数和变量名组成.表达式的结果为一个矩阵,显示在屏幕上,同时保存在变量中以留用.如果变量名和“=”省略,则具有ans名(意思指回答)的变量将自动建立.例如: 键入1900/81 结果为: ans = 23.4568 需注意的问题有以下几点: l 语句结束键入回车键,若语句的最后一个字符是分号,即“;”,则表明不输出当前命令的结果. l 如果表达式很长,一行放不下,可以键入“ …”(三个点,但前面必须有个空格,目的是避免将形如“数2 …”理解为“数2.”与“..”的连接,从而导致错误),然后回车. l 变量和函数名由字母加数字组成,但最多不能超过63个字符,否则系统只承认前63个字符. l 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值). 变量pi是p. 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 elementsusing 152 bytes 从size及bytes项目可以看出,每一个矩阵实元素需8个字节的内存.4×3的矩阵使用96个字节,全部变量的使用内存总数为152个字节.自由空间的大小决定了系统变量的多少,如计算机上有虚拟内存的话,其可定义的变量个数会大大增加.§1.2.5数和算术表达式 Matlab中数的表示方法和一般的编程语言没有区别.如: 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菜单中的NumericalFormat菜单改变).format仅影响矩阵的显示,不影响矩阵的计算与存贮.(Matlab以双精度执行所有的运算) 首先,如果矩阵元素是整数则矩阵显示就没有小数,如x=[-1 0 1],结果为:         x=                -1    0     1 如果矩阵元素不是整数则输出形式有:(用命令:format 格式进行切换) 6 s9 R7 P- k" o3 e0 v| 格式 | 中文解释 | 说明 |  | 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 | 短格式e方式 | Floating point format with 5 digits |  | format long e | 长格式e方式 | Floating point format with 15 digits |  | format short g | 短格式g方式 | Best of fixed or floating point format with 5 digits |  | format long g | 长格式g方式 | Best of fixed or floating point format with 15 digits |  | format hex | 16进制格式 | Hexadecimal format |  | 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 |  | format rat | 有理数格式 | Approximation by ratio of small integers |  | format compact | 压缩格式 | Suppress extra line-feeds |  | format loose | 自由格式 | Puts the extra line-feeds back in | 
 
 例如: x=[4/3  1.2345e-6] 在不同的输出格式下的结果为: 短格式                   1.3333                                       0.0000 短格式e方式         1.3333e+000                               1.234e-006 长格式                   1.333333333333333                    0.000001234500000 长格式e方式         1.333333333333333e-000            1.23450000000000e-006 有理数格式            4/3                                             1/810045 16进制格式           3ff5555555555555                      3eb4b6231abfd271 +格式                    +                                               + 对于短格式,如果矩阵的最大元素比数999999999大,或者比数0.0001小,则在打印时,将加入一个普通的长度因数.如y=1.e20*x,意为x被1020乘,结果为: y=          1.0e+020* 1.3333             0.0000 “+”格式是显示大矩阵的一种紧凑方法,“+”,“-”和空格显示正数、负数和零元素. 最后format compact命令压缩显示的矩阵,以允许更多的信息显示在屏幕上.§1.2.8 Help求助命令和联机帮助 Help求助命令很有用,它对Matlab大部分命令提供了联机求助信息.您可以从Help菜单中选择相应的菜单,打开求助信息窗口查询某条命令,也可以直接用help命令. 键入help 得到help列表文件,键入“help 指定项目”,如: 键入help eig 则提供特征值函数的使用信息. 键入help [ 显示如何使用方括号等. 键入help help 显示如何利用help本身的功能. 还有,键入lookfor  <关键字>:可以从m文件的help中查找有关的关键字.§1.2.9 退出和存入工作空间 退出Matlab可键入quit或exit或选择相应的菜单.中止Matlab运行会引起工作空间中变量的丢失,因此在退出前,应键入save命令,保存工作空间中的变量以便以后使用. 键入 save 则将所有变量作为文件存入磁盘Matlab.mat中,下次Matlab启动时, 键入load 将变量从Matlab.mat中重新调出. save和load后边可以跟文件名或指定的变量名,如仅有save时,则只能存入Matlab.mat中.如save temp命令,则将当前系统中的变量存入temp.mat中去,命令格式为: savetemp x 仅仅存入x变量. savetemp X Y Z 则存入X、Y、Z变量. load  temp可重新从temp.mat文件中提出变量,load也可读ASCII数据文件.详细语法见联机帮助. 6 O4 E3 n, x9 U7 T* g  k
 |