MAAB软件使用简介

合集下载

MATLAB使用手册

MATLAB使用手册

MATLAB使用手册MATLAB基础1.1 MATLAB介绍MATLAB是一种科学计算软件。

MATLAB是Matrix Laboratory(矩阵实验室)的缩写,这是一种以矩阵为基础的交互式程序计算语言。

早期的MATLAB主要用于解决科学和工程的复杂数学计算问题。

由于它使用方便、输入便捷、运算高效、适应科技人员的思维方式,并且有绘图功能,有用户自行扩展的空间,因此特别受到用户的欢迎,使它成为在科技界广为使用的软件,也是国内外高校教学和科学研究的常用软件。

MATLAB由美国Mathworks公司于1984年开始推出,历经升级,到2001年已经有了6.0版,现在MATLAB 6.1、6.5、7.0版都已相继面世。

早期的MATLAB在DOS环境下运行,1990年推出了Windows版本。

1993年,Mathworks公司又推出了MATLAB的微机版,充分支持在MicrosoftWindows界面下的编程,它的功能越来越强大,在科技和工程界广为传播,是各种科学计算软件中使用频率最高的软件。

MATLAB比较易学,它只有一种数据类型(即64位双精度二进制),一种标准的输入输出语句,它用解释方式工作,不需要编译,一般入门后经过自学就可以掌握。

如果有不清楚的地方,可以通过它的帮助(help)和演示(demo)功能得到启示。

学习MATLAB的难点在于,它有大量函数,这些MATLAB函数仅基本部分就有700多个,其中常用的有200~300个,掌握和记忆起来都比较困难。

1993年出现了SIMULINK,这是基于框图的仿真平台,SIMULINK挂接在MATLAB 环境上,以MATLAB的强大计算功能为基础,以直观的模块框图进行仿真和计算。

SIMULINK提供了各种仿真工具,尤其是它不断扩展的、内容丰富的模块库,为系统的仿真提供了极大便利。

在SIMULINK平台上,拖拉和连接典型模块就可以绘制仿真对象的模型框图,并对模型进行仿真。

maab建模规则

maab建模规则

maab建模规则MAAB(Model-Based Analysis and Design)是一种基于模型的分析与设计方法。

它通过使用形式化的模型来描述系统的行为和结构,以便分析和验证系统的功能和性能。

MAAB提供了一套规则和标准,以帮助开发人员有效地使用模型进行系统分析和设计。

本文将介绍MAAB的建模规则及其应用。

MAAB建模规则要求使用者定义和维护一组形式化的模型,这些模型以MATLAB和Simulink为基础。

模型应该准确地描述系统的行为、结构和约束。

在建模过程中,需要使用清晰、一致的命名规范来命名模型元素,以便于理解和维护。

MAAB建模规则要求使用者使用符合规范的模型构建和设计系统。

模型的结构应该清晰、简洁,并且要符合系统的需求和约束。

模型中的组件和接口应该准确地反映系统的实际情况,并且要遵循标准的建模约定。

第三,MAAB建模规则要求使用者进行模型的验证和验证。

这包括对模型进行静态分析、动态仿真和模型检查,以确保模型的正确性和一致性。

模型的验证应该覆盖系统的所有方面,包括功能、性能和安全性等。

第四,MAAB建模规则要求使用者进行模型的文档化和版本控制。

模型应该有清晰的文档,包括模型的结构、接口和约束等信息。

此外,模型的版本应该得到有效的管理和控制,以确保模型的一致性和可追溯性。

第五,MAAB建模规则要求使用者进行模型的优化和优化。

这包括对模型进行性能分析和优化,以提高系统的性能和效率。

模型的优化应该考虑多个因素,包括计算资源、内存占用和响应时间等。

MAAB建模规则是一套用于系统分析和设计的规范和标准。

它提供了一种基于模型的方法,使开发人员能够更有效地进行系统分析和设计。

通过遵守MAAB建模规则,开发人员可以创建出高质量、可靠的系统模型,并且可以进行系统级的验证和优化。

这将有助于提高系统的质量和可靠性,减少开发过程中的错误和风险。

因此,掌握和应用MAAB建模规则对于系统开发人员来说是非常重要的。

Matlab使用方法和简介

Matlab使用方法和简介

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(求特征值的函数)命令.下面我们先从输入简单的矩阵开始掌握Matlab的功能.§1.2.1输入简单的矩阵输入一个小矩阵的最简单方法是用直接排列的形式.矩阵用方括号括起,元素之间用空格或逗号分隔,矩阵行与行之间用分号分开.例如输入:A=[1 2 3 ; 4 5 6 ; 7 8 0]系统会回答A =1 2 34 5 67 8 0表示系统已经接收并处理了命令,在当前工作区内建立了矩阵A.大的矩阵可以分行输入,用回车键代替分号,如:A=[ 1 2 34 5 67 8 0 ]结果和上式一样,也是A =1 2 34 5 67 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 34 5 67 8 010 11 12小矩阵可用“:”从大矩阵中抽取出来,如:A=A(1:3,:);即从A中取前三行和所有的列,重新组成原来的A. (详细介绍参见第二节的相关内容)§1.2.3语句和变量Matlab的表述语句、变量的类型说明由Matlab系统解释和判断.Matlab语句通常形式为:变量=表达式或者使用其简单形式为:表达式表达式由操作符或其它特殊字符、函数和变量名组成.表达式的结果为一个矩阵,显示在屏幕上,同时保存在变量中以留用.如果变量名和“=”省略,则具有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/0S=1/0结果会是Warning:Divide by zeroS=Inf具有IEEE规则的机器,被零除后,并不引出出错条件或终止程序的运行,而产生一个警告信息和一个特殊值在计算方程中列出来.变量NaN表示它是个不定值.由Inf/Inf或0/0运算产生.要了解当前变量的信息请键入whos,屏幕将显示:Name Size Bytes ClassA 4x3 96 double arrayS 1x1 8 double arrayans 1x1 8 double arrayx 1x5 40 double arrayGrand total is 19 elements using 152 bytes从size及bytes项目可以看出,每一个矩阵实元素需8个字节的内存.4×3的矩阵使用96个字节,全部变量的使用内存总数为152个字节.自由空间的大小决定了系统变量的多少,如计算机上有虚拟内存的话,其可定义的变量个数会大大增加.§1.2.5数和算术表达式Matlab中数的表示方法和一般的编程语言没有区别.如:3 -99 0.00019.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 SHORTformat short 短格式(缺省格式)Scaled fixed point format with 5 digits (只显示五位十进制数)format long 长格式Scaled fixed point format with 15 digitsformat short e 短格式e方式Floating point format with 5 digitsformat long e 长格式e方式Floating point format with 15 digitsformat 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 formatformat + +格式The symbols +, - and blank are printedfor positive, negative and zero elements.Imaginary parts are ignoredformat bank 银行格式Fixed format for dollars and centsformat rat 有理数格式Approximation by ratio of small integersformat compact 压缩格式Suppress extra line-feedsformat 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/81004516进制格式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中去,命令格式为:save temp x 仅仅存入x变量.save temp X Y Z 则存入X、Y、Z变量.load temp可重新从temp.mat文件中提出变量,load也可读ASCII数据文件.详细语法见联机帮助.第二节向量与矩阵运算Matlab能处理数、向量和矩阵.但一个数事实上是一个1×1的矩阵,1个n维向量也不过是一个1×n或n×1的矩阵.从这个角度上来讲,Matlab处理的所有的数据都是矩阵.Matlab的矩阵处理能力是非常灵活、强大的.以下我们将从矩阵的产生、基本运算、矩阵函数等几个方面来说明.§2.1向量及矩阵的生成除了我们在上节介绍的直接列出矩阵元素的输入方法,矩阵还可以通过几种不同的方式输入到Matlab中.§2.1.1 通过语句和函数产生1. 向量的产生除了直接列出向量元素(即所谓的“穷举法”)外,最常用的用来产生相同增量的向量的方法是利用“:”算符(即所谓的“描述法”).在Matlab中,它是一个很重要的字符.如:z=1:5z =1 2 3 4 5即产生一个1~5的单位增量是1的行向量,此为默认情况.用“:”号也可以产生单位增量不等于1的行向量,语法是把增量放在起始量和结尾量的中间.如:x=0:pi/4:pi即产生一个由0~pi的行向量,单位增量是pi/4=3.1416/4=0.7854.x =0 0.7854 1.5708 2.3562 3.1416也可以产生单位增量为负数的行向量.如:y=6:-1:1y =6 5 4 3 2 12. 矩阵的产生Matlab提供了一批产生矩阵的函数:zeros 产生一个零矩阵diag 产生一个对角矩阵ones 生成全1矩阵tril 取一个矩阵的下三角eye 生成单位矩阵triu 取一个矩阵的上三角magic 生成魔术方阵pascal 生成PASCAL矩阵例如:ones(3)ans =1 1 11 1 11 1 1eye(3)ans =1 0 00 1 00 0 1除了以上产生标准矩阵的函数外,Matlab还提供了产生随机(向量)矩阵的函数rand 和randn,及产生均匀级数的函数linspace、产生对数级数的函数logspace和产生网格的函数meshgrid等等.详细使用请查阅随机文档.“: ”冒号可以用来产生简易的表格,为了产生纵向表格形式,首先用冒号“: ”产生行向量,再进行转置,计算函数值的列,然后形成有二列的矩阵.例如命令:x=(0.0:0.2:3.0)';y=exp(-x).*sin(x);[x y]产生结果为:ans =0 00.2000 0.16270.4000 0.26100.6000 0.30990.8000 0.32231.0000 0.30961.2000 0.28071.4000 0.24301.6000 0.20181.8000 0.16102.0000 0.12312.2000 0.08962.4000 0.06132.6000 0.03832.8000 0.02043.0000 0.0070§2.1.2 通过后缀为.m的命令文件产生如有文件data.m,其中包括正文:A=[ 1 2 34 5 67 8 0]则用data命令执行data.m,可以产生名为A的矩阵.§2.2 矩阵操作在Matlab中可以对矩阵进行任意操作,包括改变它的形式,取出子矩阵,扩充矩阵,旋转矩阵等.其中最重要的操作符为“:”,它的作用是取出选定的行与列.例如:A(:,:) 代表A的所有元素;试比较A(:), 将A按列的方向拉成长长的1列(向量);A(:,J) 代表A的第J列;A(J:K) 代表A(J), A(J+1), …, A(K),如同A(:)的第J到第K个元素;A(:,J:K) 代表A(:,J), A(:,J+1), …, A(:,K),如此类推.对矩阵可以进行各种各样的旋转、变形、扩充:Matlab中有内部函数fliplr ( Flip matrix in the left/right direction),它对矩阵进行左右旋转.例x = 1 2 3 fliplr(x)为 3 2 14 5 6 6 5 4同样有flipud:x = 1 4 flipud(x)为 3 62 5 2 53 6 1 4矩阵的转置用符号“' ”表示:如A=[1 2 3; 4 5 6 ; 7 8 0]那么:计算B=A'B =1 4 72 5 83 6 0符号“' ”为矩阵的转置,如果Z为复矩阵,则Z'为它的复数共轭转置,非共轭转置使用Z.' 或conj(Z')求得.reshape改变矩阵的形状,这是什么意思呢?可举一个例子来说明.A=[A;[10 11 12]]A =1 2 34 5 67 8 010 11 12则reshape(A,2,6)ans =1 72 83 04 105 116 12 可见,reshape 是将矩阵元素以列为单位进行重组,原来4×3的矩阵变为了2×6的矩阵.那么以下的语句也不难理解了,它将矩阵A 按列打开(函数返回矩阵A 的行数与列数).reshape(A,1,size(A,1)*size(A,2)),它等价于A(:)' .还有函数rot90,它可以将矩阵进行各种90度的旋转;tril 及triu 取出矩阵的下三角及上三角阵等.详细的用法可以在需要使用时查阅手册.第三节 矩阵的基本运算§3.1 加和减如矩阵A 和B 的维数相同,则A+B 与A-B 表示矩阵A 与B 的和与差.如果矩阵A 和B 的维数不匹配,Matlab 会给出相应的错误提示信息.如:A= B=1 2 3 1 4 7 4 5 6 2 5 8 7 8 0 3 6 0 C =A+B 返回:C =2 6 10 6 10 14 10 14 0如果运算对象是个标量(即1×1矩阵),可和其它矩阵进行加减运算.例如: x= -1 y=x-1= -20 -1 2 1§3.2矩阵乘法Matlab 中的矩阵乘法有通常意义上的矩阵乘法,也有Kronecker 乘法,以下分别介绍. §3.2.1 矩阵的普通乘法矩阵乘法用“ * ”符号表示,当A 矩阵列数与B 矩阵的行数相等时,二者可以进行乘法运算,否则是错误的.计算方法和线性代数中所介绍的完全相同.如:A=[1 2 ; 3 4]; B=[5 6 ; 7 8]; C=A*B , 结果为C=⎪⎪⎭⎫ ⎝⎛4321×⎪⎪⎭⎫ ⎝⎛8765=⎪⎪⎭⎫ ⎝⎛⨯+⨯⨯+⨯⨯+⨯⨯+⨯8463745382617251=⎪⎪⎭⎫ ⎝⎛50432219 即Matlab 返回: C =19 22 43 50如果A 或B 是标量,则A*B 返回标量A (或B )乘上矩阵B (或A )的每一个元素所得的矩阵.§3.2.2 矩阵的Kronecker 乘法 对n ×m 阶矩阵A 和p ×q 阶矩阵B ,A 和B 的Kronecher 乘法运算可定义为:⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=⊗=B a B a B a B a B a B a B a B a B a B A C nm n n m m (21)2222111211 由上面的式子可以看出,Kronecker 乘积A ⊗B 表示矩阵A 的所有元素与B 之间的乘积组合而成的较大的矩阵,B ⊗A 则完全类似.A ⊗B 和B ⊗A 均为np ×mq 矩阵,但一般情况下A ⊗B ≠B ⊗A .和普通矩阵的乘法不同,Kronecker 乘法并不要求两个被乘矩阵满足任何维数匹配方面的要求.Kronecker 乘法的Matlab 命令为C=kron(A,B),例如给定两个矩阵A 和B :A =1234⎛⎝ ⎫⎭⎪ B=132246⎛⎝ ⎫⎭⎪则由以下命令可以求出A 和B 的Kronecker 乘积C :A=[1 2; 3 4]; B=[1 3 2; 2 4 6]; C=kron(A,B) C =1 32 2 6 4 2 4 6 4 8 123 9 64 12 8 6 12 18 8 16 24作为比较,可以计算B 和A 的Kronecker 乘积D ,可以看出C 、D 是不同的: A=[1 2; 3 4]; B=[1 3 2; 2 4 6]; D=kron(B,A) D =1 2 3 6 2 4 3 4 9 12 6 8 2 4 4 8 6 12 6 8 12 16 18 24§3.3 矩阵除法在Matlab 中有两种矩阵除法符号:“\”即左除和“/”即右除.如果A 矩阵是非奇异方阵,则A\B 是A 的逆矩阵乘B ,即inv(A)*B ;而B/A 是B 乘A 的逆矩阵,即B*inv(A).具体计算时可不用逆矩阵而直接计算.通常:x=A\B 就是A*x=B 的解; x=B/A 就是x*A=B 的解.当B 与A 矩阵行数相等可进行左除.如果A 是方阵,用高斯消元法分解因数.解方程:A*x(:, j)=B(:, j),式中的(:, j)表示B 矩阵的第j 列,返回的结果x 具有与B 矩阵相同的阶数,如果A 是奇异矩阵将给出警告信息.如果A 矩阵不是方阵,可由以列为基准的Householder 正交分解法分解,这种分解法可以解决在最小二乘法中的欠定方程或超定方程,结果是m ×n 的x 矩阵.m 是A 矩阵的列数,n 是B 矩阵的列数.每个矩阵的列向量最多有k 个非零元素,k 是A 的有效秩.右除B/A 可由B/A=(A'\B')'左除来实现.§3.4矩阵乘方A^P 意思是A 的P 次方.如果A 是一个方阵,P 是一个大于1的整数,则A^P 表示A 的P 次幂,即A 自乘P 次.如果P 不是整数,计算涉及到特征值和特征向量的问题,如已经求得:[V,D]=eig(A),则:A^P=V*D.^P/V (注:这里的.^表示数组乘方,或点乘方,参见后面的有关介绍)如果B 是方阵, a 是标量,a^B 就是一个按特征值与特征向量的升幂排列的B 次方程阵. 如果a 和B 都是矩阵,则a^B 是错误的.§3.5 矩阵的超越函数在Matlab中解释exp(A)和sqrt(A)时曾涉及到级数运算,此运算定义在A的单个元素上.Matlab可以计算矩阵的超越函数,如矩阵指数、矩阵对数等.一个超越函数可以作为矩阵函数来解释,例如将“m”加在函数名的后边而成expm(A)和sqrtm(A),当Matlab运行时,有下列三种函数定义:expm 矩阵指数logm 矩阵对数sqrtm 矩阵开方所列各项可以加在多种m文件中或使用funm.请见应用库中sqrtm.m,1ogm.m,funm.m 文件和命令手册.§3.6数组运算数组运算由线性代数的矩阵运算符“*”、“/”、“\”、“^”前加一点来表示,即为“.*”、“./”、“.\”、“.^”.注意没有“.+”、“.-”运算.§3.6.1数组的加和减对于数组的加和减运算与矩阵运算相同,所以“+”、“-”既可被矩阵接受又可被数组接受.§3.6.2数组的乘和除数组的乘用符号.*表示,如果A与B矩阵具有相同阶数,则A.*B表示A和B单个元素之间的对应相乘.例如x=[1 2 3]; y=[ 4 5 6];计算z=x.*y结果z=4 10 18数组的左除(.\)与数组的右除(./),由读者自行举例加以体会.§3.6.3 数组乘方数组乘方用符号.^表示.例如:键入:x=[ 1 2 3]y=[ 4 5 6]则z=x.^y=[1^4 2^5 3^6]=[1 32 729](1) 如指数是个标量,例如x.^2,x同上,则:z=x.^2=[1^2 2^2 3^2]=[ 1 4 9](2) 如底是标量,例如2 .^[x y] ,x、y同上,则:z=2 .^[x y]=[2^1 2^2 2^3 2^4 2^5 2^6]=[2 4 8 16 32 64] 从此例可以看出Matlab算法的微妙特性,虽然看上去与其它乘方没什么不同,但在2和“.”之间的空格很重要,如果不这样做,解释程序会把“.”看成是2的小数点.Matlab 看到符号“^”时,就会当做矩阵的幂来运算,这种情况就会出错,因为指数矩阵不是方阵.§3.7 矩阵函数Matlab的数学能力大部分是从它的矩阵函数派生出来的,其中一部分装入Matlab本身处理中,它从外部的Matlab建立的M文件库中得到,还有一些由个别的用户为其自己的特殊的用途加进去的.其它功能函数在求助程序或命令手册中都可找到.手册中备有为Matlab 提供数学基础的LINPACK和EISPACK软件包,提供了下面四种情况的分解函数或变换函数:(1)三角分解;(2)正交变换;(3) 特征值变换;(4)奇异值分解.§3.7.1三角分解最基本的分解为“LU”分解,矩阵分解为两个基本三角矩阵形成的方阵,三角矩阵有上三角矩阵和下三角矩阵.计算算法用高斯变量消去法.从lu函数中可以得到分解出的上三角与下三角矩阵,函数inv得到矩阵的逆矩阵,det 得到矩阵的行列式.解线性方程组的结果由方阵的“\”和“/”矩阵除法来得到.例如:A=[ 1 2 34 5 67 8 0]LU分解,用Matlab的多重赋值语句[L,U]=lu(A)得出L =0.1429 1.0000 00.5714 0.5000 1.00001.0000 0 0U =7.0000 8.0000 00 0.8571 3.00000 0 4.5000注:L是下三角矩阵的置换,U是上三角矩阵的正交变换,分解作如下运算,检测计算结果只需计算L*U即可.求逆由下式给出:x=inv(A)x =-1.7778 0.8889 -0.11111.5556 -0.7778 0.2222-0.1111 0.2222 -0.1111从LU分解得到的行列式的值是精确的,d=det(U)*det(L)的值可由下式给出:d=det(A)d =27直接由三角分解计算行列式:d=det(L)*det(U)d =27.0000为什么两种d的显示格式不一样呢? 当Matlab做det(A)运算时,所有A的元素都是整数,所以结果为整数.但是用LU分解计算d时,L、U的元素是实数,所以Matlab产生的d也是实数.例如:线性联立方程取b=[ 135]解Ax=b方程,用Matlab矩阵除得到x=A\b结果x=0.33330.33330.0000由于A=L*U,所以x也可以有以下两个式子计算:y=L\b,x=U\y.得到相同的x值,中间值y为:y =5.00000.28570.0000Matlab中与此相关的函数还有rcond、chol和rref.其基本算法与LU分解密切相关.chol函数对正定矩阵进行Cholesky分解,产生一个上三角矩阵,以使R'*R=X.rref用具有部分主元的高斯-约当消去法产生矩阵A的化简梯形形式.虽然计算量很少,但它是很有趣的理论线性代数.为了教学的要求,也包括在Matlab中.§3.7.2正交变换“QR”分解用于矩阵的正交-三角分解.它将矩阵分解为实正交矩阵或复酉矩阵与上三角矩阵的积,对方阵和长方阵都很有用.例如A=[ 1 2 34 5 67 8 910 11 12]是一个降秩矩阵,中间列是其它二列的平均,我们对它进行QR分解:[Q,R]=qr(A)Q =-0.0776 -0.8331 0.5444 0.0605-0.3105 -0.4512 -0.7709 0.3251-0.5433 -0.0694 -0.0913 -0.8317-0.7762 0.3124 0.3178 0.4461R =-12.8841 -14.5916 -16.29920 -1.0413 -2.08260 0 0.00000 0 0可以验证Q*R就是原来的A矩阵.由R的下三角都给出0,并且R(3,3)=0.0000,说明矩阵R与原来矩阵A都不是满秩的.下面尝试利用QR分解来求超定和降秩的线性方程组的解.例如:b=[ 1357]讨论线性方程组Ax=b,我们可以知道方程组是超定的,采用最小二乘法的最好结果是计算x=A\b.结果为:Warning: Rank deficient, rank = 2 tol = 1.4594e-014x =0.50000.1667我们得到了缺秩的警告.用QR分解法计算此方程组分二个步骤:y=Q'*bx=R\y求出的y值为y =-9.1586-0.34710.00000.0000x的结果为Warning: Rank deficient, rank = 2 tol = 1.4594e-014x =0.50000.1667用A*x来验证计算结果,我们会发现在允许的误差范围内结果等于b.这告诉我们虽然联立方程Ax=b是超定和降秩的,但两种求解方法的结果是一致的.显然x向量的解有无穷多个,而“QR”分解仅仅找出了其中之一.§3.7.3奇异值分解在Matlab中三重赋值语句[U,S,V]=svd(A)在奇异值分解中产生三个因数:A=U*S*V 'U矩阵和V矩阵是正交矩阵,S矩阵是对角矩阵,svd(A)函数恰好返回S的对角元素,而且就是A的奇异值(其定义为:矩阵A'*A的特征值的算术平方根).注意到A矩阵可以不是方的矩阵.奇异值分解可被其它几种函数使用,包括广义逆矩阵pinv(A)、秩rank(A)、欧几里德矩阵范数norm(A,2)和条件数cond(A).§3.7.4 特征值分解如果A是n×n矩阵,若λ满足Ax=λx,则称λ为A的特征值,x为相应的特征向量.函数eig(A)返回特征值列向量,如果A是实对称的,特征值为实数.特征值也可能为复数,例如:A=[ 0 1-1 0]eig(A)产生结果ans =0 + 1.0000i0 - 1.0000i如果还要求求出特征向量,则可以用eig(A)函数的第二个返回值得到:[x,D]=eig(A)D的对角元素是特征值.x的列是相应的特征向量,以使A*x=x*D.计算特征值的中间结果有两种形式:Hessenberg形式为hess(A),Schur形式为schur(A).schur形式用来计算矩阵的超越函数,诸如sqrtm(A)和logm(A).如果A和B是方阵,函数eig(A,B)返回一个包含一般特征值的向量来解方程Ax=λBx双赋值获得特征向量[X,D]=eig(A,B)产生特征值为对角矩阵D.满秩矩阵X的列相应于特征向量,使A*X=B*X*D,中间结果由qz(A,B)提供.§3.7.5秩Matlab计算矩阵A的秩的函数为rank(A),与秩的计算相关的函数还有:rref(A)、orth(A)、null(A)和广义逆矩阵pinv(A)等.利用rref(A),A的秩为非0行的个数.rref方法是几个定秩算法中最快的一个,但结果上并不可靠和完善.pinv(A)是基于奇异值的算法.该算法消耗时间多,但比较可靠.其它函数的详细用法可利用Help求助.第四节 Matlab 中的图形§4.1 二维作图绘图命令plot 绘制x-y 坐标图;loglog 命令绘制对数坐标图;semilogx 和semilogy 命令绘制半对数坐标图;polor 命令绘制极坐标图.§4.1.1 基本形式如果y 是一个向量,那么plot(y)绘制一个y 中元素的线性图.假设我们希望画出 y=[0., 0.48, 0.84, 1., 0.91, 6.14 ] 则用命令:plot(y)它相当于命令:plot(x, y),其中x=[1,2,…,n]或x=[1;2;…;n],即向量y 的下标编号, n 为向量y 的长度Matlab 会产生一个图形窗口,显示如下图形,请注意:坐标x 和y 是由计算机自动绘出的.12345601234567图4.1.1.1 plot([0.,0.48,0.84,1.,0.91,6.14])上面的图形没有加上x 轴和y 轴的标注,也没有标题.用xlabel ,ylabel ,title 命令可以加上.如果x ,y 是同样长度的向量,plot(x,y)命令可画出相应的x 元素与y 元素的x-y 坐标图.例:x=0:0.05:4*pi; y=sin(x); plot(x,y) grid on, title(' y=sin( x ) 曲线图' ) xlabel(' x = 0 : 0.05 : 4Pi ') 结果见下图.024********-1-0.8-0.6-0.4-0.20.20.40.60.81 y=sin( x ) 曲线图x = 0 : 0.05 : 4Pi图4.1.1.2 y=sin(x)的图形title图形标题xlabel x坐标轴标注ylabel y坐标轴标注text 标注数据点grid 给图形加上网格hold 保持图形窗口的图形表4.1.1.1 Matlab图形命令§4.1.2 多重线在一个单线图上,绘制多重线有三种办法.第一种方法是利用plot的多变量方式绘制:plot(x1,y1,x2,y2,...,xn,yn)x1,y1,x2,y2,...,xn,yn是成对的向量,每一对x, y在图上产生如上方式的单线.多变量方式绘图是允许不同长度的向量显示在同一图形上.第二种方法也是利用plot绘制,但加上hold on/off命令的配合:plot(x1,y1)hold onplot(x2,y2)hold off第三种方法还是利用plot绘制,但代入矩阵:如果plot用于两个变量plot(x,y),并且x,y是矩阵,则有以下情况:(1)如果y是矩阵,x是向量,plot(x,y)用不同的画线形式绘出y的行或列及相应的x 向量,y的行或列的方向与x向量元素的值选择是相同的.(2)如果x是矩阵,y是向量,则除了x向量的线族及相应的y向量外,以上的规则也适用.(3)如果x,y是同样大小的矩阵,plot(x,y)绘制x的列及y相应的列.还有其它一些情况,请参见Matlab的帮助系统.§4.1.3 线型和颜色的控制如果不指定划线方式和颜色,Matlab会自动为您选择点的表示方式及颜色.您也可以用不同的符号指定不同的曲线绘制方式.例如:plot(x,y,'*') 用'*'作为点绘制的图形.plot(x1,y1,':',x2,y2,'+') 用':'画第一条线,用'+'画第二条线.线型、点标记和颜色的取值有以下几种:线型点标记颜色- 实线. 点y 黄: 虚线o 小圆圈m 棕色-. 点划线x 叉子符 c 青色-- 间断线+ 加号r 红色* 星号g 绿色s 方格 b 蓝色d 菱形w 白色^ 朝上三角k 黑色v 朝下三角> 朝右三角< 朝左三角p 五角星h 六角星表4.1.3.1线型和颜色控制符如果你的计算机系统不支持彩色显示,Matlab将把颜色符号解释为线型符号,用不同的线型表示不同的颜色.颜色与线型也可以一起给出,即同时指定曲线的颜色和线型.例如:t=-3.14:0.2:3.14;。

MATLAB基础使用教程

MATLAB基础使用教程

MATLAB基础使用教程一、什么是MATLAB?MATLAB是一款强大的数学计算软件,广泛应用于科学研究、工程设计和数据分析等领域。

它以其简单易用的编程语言和丰富的功能,成为了许多科研工作者和工程师的首选工具。

在本篇文章中,将介绍MATLAB的基础使用方法,帮助初学者快速入门。

二、MATLAB的安装与入门1. 下载和安装MATLAB软件在MathWorks官方网站上下载适用于您的操作系统版本的MATLAB,然后按照安装向导的提示进行安装。

2. MATLAB的界面介绍在打开MATLAB后,您将看到一个包含命令窗口、编辑器和变量编辑器等组件的界面。

命令窗口是最常用的组件,您可以在其中输入MATLAB的命令并执行。

3. 基本操作在命令窗口中,可以输入简单的算术运算,如加减乘除,以及一些内置函数。

例如,输入"2+3"并按下Enter,MATLAB将返回结果5。

三、MATLAB的变量与数据类型1. 变量的定义与赋值在MATLAB中,可以使用一个变量来存储一个数值或一个数据矩阵。

要定义一个变量并赋值,只需输入变量名和等号,然后再输入数值或矩阵。

例如,输入"A=5",即可定义一个名为A的变量,并将其赋值为5。

2. 数据类型MATLAB支持多种数据类型,包括整数、浮点数、字符串和逻辑类型。

您可以使用"whos"命令查看当前可用的变量及其数据类型。

3. 矩阵与数组操作在MATLAB中,矩阵和数组是最常用的数据结构之一。

您可以使用方括号来创建矩阵或数组,并使用索引来访问其中的元素。

例如,输入"A=[1 2 3; 4 5 6]",即可创建一个2行3列的矩阵。

四、MATLAB的数学运算与函数1. 基本数学运算MATLAB支持各种基本的数学运算,包括加、减、乘、除、幂运算等。

您可以直接在命令窗口中输入相应的表达式,并按下Enter键进行计算。

matlab简明教程 第一章

matlab简明教程 第一章

1.1 MATLAB使用入门1.1.1 MATLAB 简介MALAB是MathWorks公司于1982年推出的一套高性能数值计算的可视化软件,它集数值分析、矩阵计算、信号处理和图形显示于一体,构成一个使用方便、界面友好的用户环境。

在这种环境下,用户只需要简单地列出数学表达式,结果便以数值或图形的方式显示在计算机屏幕上,用户也可以将结果保存在文件中。

MALAB的名称源自Matrix Laboratory,是一门计算语言。

MALAB将计算与可视化集成到一个灵活的计算机环境中,并提供了大量的内置函数,可以在广泛的工程问题中直接调用这些函数获得数值解。

MALAB有许多工具箱,这些工具箱成为一些领域的实用工具。

MALAB具如下特点:1)易学习性MALAB语言不要求用户有较高深的数学和程序语言知识,不需要用户深刻了解算法及编程技巧。

用户只需输入求解问题的数学表达式,就能得到计算结果。

MALAB既是一种编程环境,又是一种程序设计语言。

这种语言同高级程序语言(如C、Fortran)一样,有其特定的语法规则,但它的规则更接近于数学表示,因而使用起来更为方便。

MALAB的语句功能更为强大,一条语句就可以完成一个复杂的任务,如inv(A)可以得到矩阵A的逆矩阵,这相当于几十条C语言语句的功能。

2)实用方便性MALAB包含了被称作Toolbox(工具箱)的各类问题求解工具,它实际上是对MALAB进行扩展应用的一系列MALAB函数(称作M文件)。

利用工具箱可以解特定学科的问题,如线性规划、信号处理、小波分析等。

3)易扩展性MALAB允许用户建立指定功能的M文件,从而可以产生特定功能的工具箱。

用户不仅可以使用MALAB提供的函数及基本工具箱函数,而且可以方便地编写出专用函数,因此大大扩展了MALAB的应用范围。

4)先进的可视化工具MALAB提供了强大的、交互式的二维和三维绘图功能,可使用户创建富有表现力的彩色图形。

可视化工具包括曲面渲染、线框图、光源动画等。

MATLAB工具箱的功能及使用方法

MATLAB工具箱的功能及使用方法

MATLAB工具箱的功能及使用方法引言:MATLAB是一种常用的用于数值计算和科学工程计算的高级计算机语言和环境。

它的灵活性和强大的计算能力使得它成为工程师、科学家和研究人员的首选工具之一。

而在MATLAB中,工具箱则提供了各种专业领域的功能扩展,使得用户能够更方便地进行数据分析、信号处理、优化和控制系统设计等任务。

本文将介绍MATLAB工具箱的一些常见功能及使用方法,并探讨其在不同领域中的应用。

一、图像处理工具箱图像处理工具箱(Image Processing Toolbox)是MATLAB的核心工具之一,它提供了一套强大的函数和算法用于处理和分析数字图像。

在图像处理方面,可以使用MATLAB工具箱实现各种操作,如图像增强、降噪、边缘检测、图像分割等。

其中最常用的函数之一是imread,用于读取图像文件,并将其转换为MATLAB中的矩阵形式进行处理。

此外,还有imwrite函数用于将处理后的图像保存为指定的文件格式。

二、信号处理工具箱信号处理工具箱(Signal Processing Toolbox)是用于处理连续时间和离散时间信号的工具箱。

它提供了一系列的函数和工具用于信号的分析、滤波、变换和频谱分析等操作。

在该工具箱中,最常用的函数之一是fft,用于计算信号的快速傅里叶变换,从而获取信号的频谱信息。

此外,还有滤波器设计函数,用于设计和实现各种数字滤波器,如低通滤波器、高通滤波器和带通滤波器等。

三、优化工具箱优化工具箱(Optimization Toolbox)提供了解决各种优化问题的函数和算法。

MATLAB中的优化工具箱支持线性规划、非线性规划、整数规划、二次规划等多种优化问题的求解。

其中最常用的函数之一是fmincon,用于求解无约束和约束的非线性优化问题。

通过传入目标函数和约束条件,该函数可以找到满足最优性和约束条件的最优解。

四、控制系统工具箱控制系统工具箱(Control System Toolbox)用于建模、设计和分析各种控制系统。

第02讲-MATLAB入门

第02讲-MATLAB入门

MATLAB软件功能介绍与应用领域功能介绍:一、从概念到实现-科学与工程都需要MATLABMATLAB产品组是支持你从概念设计,算法开发,建模仿真,实时实现的理想的集成环境。

无论是进行科学研究和产品开发,MATLAB产品族都是你必不可少的工具。

MATLAB产品族可用来进行:1.数据分析;2. 数值和符号计算;3. 工程与科学绘图;4. 控制系统设计;5. 数字图像信号处理;6. 财务工程;7. 建模、仿真、原型开发;8. 应用开发;9. 图形用户界面设计。

二、MATLAB主要产品构成MATLAB所有MathWorks公司产品的数值分析和图形基础环境。

MATLAB将2D和3D图形、MATLAB语言能力集成到一个单一的,易学易用的环境之中。

MATLAB Toolbox一系列专用的MATLAB函数库,解决特定领域的问题。

工具箱是开放的可扩展的:你可以查看其中的算法,或开发自己的算法。

MATLAB Compiler将MATLAB语言编写的m文件自动转换成C或C++文件,支持用户进行独立应用开发。

结合Mathworks 提供的C/C++数学库和图形库,用户可以利用MATLAB快速地开发出功能强大的独立应用SimulinkStateflowReal-Time WorkshopSimulink Blockset三、MATLAB Toolbox(工具箱)为了支持不同的专业领域的用户,MATLAB还提供了大量的面向专业领域的工具箱。

通过使用工具箱,以往需要复杂编程的算法开发任务需要花费很长的时间才能完成,而且调试需要花费更多的时间。

而使用MATLAB语言和MATLAB工具箱,用户可以专注于算法研究,编程只需要几行就可以完成,而且可以很快的画出图形,从而迅速地进行多种算法的比较,从中找出最好的方案。

MATLAB工具箱中的大多数函数都是通过M文件编写的,用户可以察看其中的源码,通过适当的修改,便可以形成自己的特殊算法。

MA AB 软件使用简介

MA AB 软件使用简介

MATLAB 软件使用简介MATLAB 是一个功能强大的常用数学软件, 它不但可以解决数学中的数值计算问题, 还可以解决符号演算问题, 并且能够方便地绘出各种函数图形。

MATLAB自1984年由美国的MathWorks公司推向市场以来,历经十几年的发展和竞争,现已成为国际最优秀的科技应用软件之一。

这里主要以适用于Windows操作系统的MATLAB5.3版本向读者介绍MATLAB的使用命令和内容。

一、MATLAB 的进入/退出MATLAB 的安装成功后, 系统会在Windows【开始】菜单的【程序】子菜单中加入启动MATLAB命令的图标, 用鼠标单击它就可以启动MATLAB系统,见图2.1。

图2.1 启动MATLAB启动MATLAB后, 屏幕上出现MATLAB命令窗口:图2.2 MATLAB命令窗口图2.2的空白区域是MATLAB 的工作区(命令输入区), 在此可输入和执行命令。

退出MATLAB系统像关闭Word文件一样, 只要用鼠标点击MATLAB系统集成界面右上角的关闭按钮即可。

二、 MATLAB 操作的注意事项●在MATLAB工作区输入MATLAB命令后, 还须按下Enter键, MATLAB才能执行你输入的MATLAB命令, 否则MATLAB不执行你的命令。

●MATLAB 是区分字母大小写的。

●一般,每输入一个命令并按下Enter键, 计算机就会显示此次输入的执行结果。

(以下用↙表示回车)。

如果用户不想计算机显示此次输入的结果,只要在所输入命令的后面再加上一个分号“;”即可以达到目的。

如:x= 2 + 3↙ x=5x = 2 + 3 ; ↙不显示结果5●在MATLAB工作区如果一个表达式一行写不下,可以用在此行结尾处键入三个英文句号的方法达到换行的目的。

如:q=5^6+sin(pi)+exp(3)+(1+2+3+4+5)/sin(x)…-5x+1/2-567/(x+y)●MATLAB 可以输入字母、汉字,但是标点符号必须在英文状态下书写。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB 软件使用简介MATLAB 是一个功能强大的常用数学软件, 它不但可以解决数学中的数值计算问题, 还可以解决符号演算问题, 并且能够方便地绘出各种函数图形。

MATLAB自1984年由美国的MathWorks公司推向市场以来,历经十几年的发展和竞争,现已成为国际最优秀的科技应用软件之一。

这里主要以适用于Windows操作系统的MATLAB5.3版本向读者介绍MATLAB的使用命令和内容。

一、MATLAB 的进入/退出MATLAB 的安装成功后, 系统会在Windows【开始】菜单的【程序】子菜单中加入启动MATLAB命令的图标, 用鼠标单击它就可以启动MATLAB系统,见图2.1。

图2.1 启动MATLAB启动MATLAB后, 屏幕上出现MATLAB命令窗口:图2.2 MATLAB命令窗口图2.2的空白区域是MATLAB 的工作区(命令输入区), 在此可输入和执行命令。

退出MATLAB系统像关闭Word文件一样, 只要用鼠标点击MATLAB系统集成界面右上角的关闭按钮即可。

二、 MATLAB 操作的注意事项●在MATLAB工作区输入MATLAB命令后, 还须按下Enter键, MATLAB才能执行你输入的MATLAB命令, 否则MATLAB不执行你的命令。

●MATLAB 是区分字母大小写的。

●一般,每输入一个命令并按下Enter键, 计算机就会显示此次输入的执行结果。

(以下用↙表示回车)。

如果用户不想计算机显示此次输入的结果,只要在所输入命令的后面再加上一个分号“;”即可以达到目的。

如:x= 2 + 3↙ x=5x = 2 + 3 ; ↙不显示结果5●在MATLAB工作区如果一个表达式一行写不下,可以用在此行结尾处键入三个英文句号的方法达到换行的目的。

如:q=5^6+sin(pi)+exp(3)+(1+2+3+4+5)/sin(x)…-5x+1/2-567/(x+y)●MATLAB 可以输入字母、汉字,但是标点符号必须在英文状态下书写。

●MATLAB 中不需要专门定义变量的类型,系统可以自动根据表达式的值或输入的值来确定变量的数据类型。

●命令行与M文件中的百分号“%”标明注释。

在语句行中百分号后面的语句被忽略而不被执行,在M文件中百分号后面的语句可以用Help命令打印出来。

三、MATLAB的变量与表达式●MATLAB的变量名MATLAB的变量名是用一个字母打头,后面最多跟19个字母或数字来定义的。

如x,y,ae3,d3er45都是合法的变量名。

应该注意不要用MATLAB中的内部函数或命令名作为变量名。

MATLAB中的变量名是区分大小写字母的。

如在MATLAB中,ab与 Ab表示两个不同的变量。

列出当前工作空间中的变量命令为Who 将内存中的当前变量以简单形式列出;Whos 列出当前内存变量的名称、大小、类型等信息;Clear 清除内存中的所有变量与函数。

●MATLAB的运算符数学运算符:+(加号),-(减号),*(乘号), \(左除), / (右除), ^ (乘幂)关系运算符:< (小于), > (大于), <= (小于等于), >= (大于等于),= =(等于), ~= (不等于)逻辑运算符:&(逻辑与运算), |( 逻辑或运算), ~( 逻辑非运算)●MATLAB的表达式及语句表达式由运算符、函数、变量名和数字组成的式子。

MATLAB语句由变量、表达式及MATLAB命令组成,用户输入的语句由MATLAB 系统解释运行。

MATLAB 语句的2种最常见的形式为:形式1:表达式形式2:变量=表达式在第一种形式中,表达式运算后产生的结果如果为数值类型,系统自动赋值给变量ans,并显示在屏幕上。

例1:用两种形式计算36sin5e++π算术运算结果。

解:Matlab命令为形式1:5^6+sin(pi)+exp(3) ↙ans =1.5645e+004形式2:a=5^6+sin(pi)+exp(3) ↙a =1.5645e+004 如果在表达式的后面加“;”,有 a=5^6+sin(pi)+exp(3);↙执行后不显示运算结果。

例2:已知矩阵⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡=2211,2121BA,对它们做简单的关系与逻辑运算解:Matlab命令为A=[1,2;1,2]; ↙B=[1,1;2,2]; ↙C=(A<B)&(A==B) ↙C=0 00 0四、MATLAB的数据显示格式虽然在MATLAB系统中数据的存储和计算都是双精度进行的,但MATLAB可以利用菜单或format命令来调整数据的显示格式。

Format命令的格式和作用如下:●Format|format short 5位定点表示●Format long 15位定点表示●format short e 5位浮点表示●Format long e 15位浮点表示●Format short g 系统选择5位定点和5位浮点中更好的表示●Format long g 系统选择15位定点和15位浮点中更好的表示●Format rat 近似的有理数的表示●Format hex 十六进制的表示●Format bank 用元角分(美制)定点表示●Format compact 变量之间没有空行●Format loose 变量之间有空行例3:对数7sin5+=a用五位定点、十五位定点以及有理数形式表示出来。

解:Matlab命令为a=5+sin(7)format short , a ↙a =5.6570format rat,a↙a =3117/551format long,a↙a =5.65698659871879五、MATLAB 中的常用函数MATLAB的常用内部函数有:六、矩阵的操作MATLAB的基本单位是矩阵,它是的MATLAB精髓,掌握矩阵的输入、各种数值运算以及矩阵函数的使用是以后能否学好MATLAB的关键。

矩阵的输入I.直接输入创建矩阵输入方法是先键入左方括弧“[”,然后按行直接键入矩阵的所有元素,最后键入右方括弧“]”。

注意:整个矩阵以“[”和“ ]”作为首尾,同行的元素用“,”或空格隔开,不同行的元素用“;”或按Enter键来分隔;矩阵的元素可以为数字也可以为表达式,如果进行的是数值计算,表达式中不可包含未知的变量。

例4:直接输入创建矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=98760154321A解:Matlab命令为A = [1,2,3; 4,15,60; 7,8,9] ↙A =1 2 34 15 607 8 9或用Matlab命令A=[1,2,3↙4,15,66↙7,8,9] ↙A =1 2 34 15 607 8 9I.用矩阵函数来生成矩阵MATLAB 提供了大量的函数来创建一些特殊的矩阵,表2.3给出MATLAB常用的矩阵函数。

例5:输入矩阵111 111 111⎛⎫ ⎪ ⎪ ⎪⎝⎭。

解:Matlab命令为ones(3) ↙ %生成元素都为1的3阶方阵ans =1 1 11 1 11 1 1例6:输入矩阵00000 00000⎛⎫ ⎪⎝⎭解:Matlab命令为zeros(2,5) ↙ %生成元素都为0的2行5列零矩阵ans =0 0 0 0 00 0 0 0 0例7:生成3阶魔方矩阵。

解:Matlab命令为magic(3) ↙ans =8 1 63 5 74 9 2●操作符“:”的说明j:k 表示步长为1的等差数列构成的数组:[j, j+1, j+2,…, k]j:i:k 表示步长为i的等差数列构成的数组:[j,j+i,j+2*i,…, k]A(i:j) 表示A(i),A(i+1),…,A(j)例8:操作符冒号”:”的应用解:Matlab命令为1:5 ↙ %步长为1的等差数列。

Ans =1 2 3 4 51:2:7 ↙ %步长为2的等差数列。

Ans =1 3 5 78:-2:0 ↙ %步长为-2的等差、递减数列。

Ans =8 6 4 2 0●对矩阵元素的操作设A是一个矩阵,则在MATLAB中有如下符号表示它的元素:A(i,j) 表示矩阵A的第i行第j列元素。

A(:,j) 表示矩阵A的第j列。

A(i,:) 表示矩阵A的第i行。

A(:,:) 表示A的所有元素构造2维矩阵A(:) 表示以矩阵A的所有元素按列做成的一个列矩阵。

A(i) 表示矩阵A(:)的第i个元素。

[ ] 表示空矩阵I.元素的抽取与赋值例9:已知矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=162ln973sin56231A,抽取与修改矩阵A的一些元素.解:Matlab命令为A=[1 23 56;sin(3) 7 9;log(2) 6 1] ↙ %输入矩阵A。

A =1.0000 23.0000 56.00000.1411 7.0000 9.00000.6931 6.0000 1.0000A(2,3) ↙ %求矩阵A的第二行第三列元素。

ans =9A(4) ↙ %求矩阵A的第四个元素。

ans =23A(2:4) ↙ %取矩阵A的A(2),A(3),A(4)。

ans =0.1411 0.6931 23.0000A(1,:) ↙ %取矩阵A的第一行。

ans =1 23 56A(:,3) %取矩阵A的第三列ans =5691a=A(1,3) ↙ %把矩阵A的第一行第三列元素赋值给变量a。

a =56A(2,1)=100 ↙ %把矩阵A的第二行第一列元素修改为100。

A =1.0000 23.0000 56.0000100.0000 7.0000 9.00000.6931 6.0000 1.0000II.矩阵的扩充例10:已知矩阵⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡=851,9631BA,利用A与B生成矩阵13100690C⎛⎫= ⎪⎝⎭,() D A B=,AAAB⎛⎫= ⎪⎝⎭。

解:Matlab命令为A=[1,3;6,9]; %输入矩阵AC= A↙C(1,3)=100; %把矩阵A扩充为1行3列矩阵C ↙C =1 3 1006 9 0B=[1,5;0,8]; ↙ %输入矩阵BD=[A,B] ↙ %由矩阵A与B合成矩阵DD =1 3 1 56 9 0 8AA=[A,zeros(2);zeros(2),B] ↙ %由矩阵A与B合成分块矩阵AA AA =1 3 0 06 9 0 00 0 1 50 0 0 8III.矩阵的部分删除例11:已知矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=162ln973sin56231A,删除矩阵A的第一行。

解:Matlab命令为A=[1 23 56;sin(3) 7 9;log(2) 6 1]; ↙A(1,:)=[] ↙ %删除矩阵A的第一行A =0.1411 7.0000 9.00000.6931 6.0000 1.0000● 矩阵的运算A+B: 矩阵加法 A-B: 矩阵减法 A*B: 矩阵乘法 A \B: 矩阵的左除 A/B: 矩阵的右除 transpose(A)或A ’:A 的转置A k *:数k 乘以Adet(A): A 的行列式: rank(A):A 的秩七、数组在MATLAB 中数组就是一行或者一列的矩阵,前边介绍的对矩阵输入、修改、保存都适用于数组,同时MATLAB 还提供了一些创建数组的特殊指令。

相关文档
最新文档