还剩12页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
附录__TLAB使用初步下面,我们以__TLAB
6.1版本为例介绍它的一些使用方法
一、__TLAB
6.1的启动和退出启动__TLAB
6.1比较简单的方法是双击桌面上的__TLAB图标此时,就会出现__TLAB的命令窗口(Com__ndWindow)要退出__TLAB
6.1可直接单击命令窗口右上角的“关闭”按钮或在窗口命令中输入quit
二、常量和变量如
2.
3、
0.
0023、3e+
8、pi、1+2i都是__TLAB的合法常量其中3e+8表示3*108,1+2i是复数常量__TLAB的变量无需事先定义,在遇到新的变量名时,__TLAB会自动建立改变量并分配存储空间当遇到已存在的变量时,__TLAB将改变它的内容如a=
2.5定义了一个变量a并给它复值
2.5,如果在输入a=4则变量a的值就变为4变量名由字母、数字、或下划线构成,并且必须以字母开头,最长为31个字符__TLAB可以区分大小些如MY_NAME、MY_name、my_name分别表示不同的变量另外,__TLAB还提供了一些用户不能清除的固定变量
(1)ans:缺省变量,以操作中最近的应答作为它的值
(2)eps:浮点相对精度eps=2-52
(3)pi:即圆周率
(4)Inf:表示正无穷大,当输入1/0时会产生Inf
(5)Nan:代表不定值(或称非数),它由Inf/Inf或0/0运算而产生
三、矩阵的输入__TLAB的基本数据结构是矩阵向量、常量可看作是特殊的矩阵__TLAB提供了多种方法输入和产生矩阵
(1)直接写出矩阵直接输入矩阵时,整个矩阵须用[]括起来,用空格或逗号分隔各行,用分号或换行分隔各列例如在__TLAB命令窗口中输入如下命令A=[123;456;789]按回车键后__TLAB在工作空间(内存)中建立矩阵A同时显示输入矩阵A=123456789若在上述命令后面添上分号则表示只在内存中建立矩阵A,屏幕上将不再显示其结果又如,在__TLAB命令窗口中输入如下命令x=
[12345]x=12345x也可看作为一个行向量y=[1;2;3]y=123y也可看作为一个列向量
(2)利用冒号产生矩阵冒号是__TLAB中最常用的操作符之一下面是几个利用冒号产生矩阵的例子x=1:5x=12345x=1:
0.5:3x=
11.
522.53A=[1:3;4:6;7:9]A=1234567893利用函数命令创建矩阵__TLAB提供了许多生成和操作矩阵的函数,可以利用他们来创建一些特殊形式的矩阵azeros:产生一个元素全为零的矩阵,用法如下zerosn:产生一个n阶元素全为零的矩阵zerosmn:产生一个m*n阶元素全为零的矩阵例如A1=zeros34%生成一个3*4的全零矩阵A1=000000000000bones:产生一个元素全为1的矩阵用法同上ceye:产生一个单位矩阵用法同上例如A2=eye3%生成一个3阶单位阵A2=100010001drand:产生一个元素在0和1之间均匀分布的随机矩阵用法同上erandn:产生一个零均值,单位方差正态分布的随机矩阵用法同上fdiag:产生对角矩阵,用法如下diagV:其中V是一个n元向量(行向量或列向量),diagV是一个n阶方阵,主对角线上元素为V其它元素均为0diagVk:是一个n+absk阶方阵,其第k条对角线上元素为V,k0时在主对角线之上,k0时在主对角线之下例如V=[7-53];A3=diagVA3=7000-50003A4=diagV1A4=070000-50000300004利用M文件来创建矩阵在菜单种选择“File”—〉“New”—〉“M-file”或在命令窗口中输入“edit”即可打开__TLAB的编辑窗口在此窗口中输入如下内容A=[123;456;789];然后保存到__TLAB的工作目录中,文件名为“My___trix.m”在__TLAB中运行这个文件,就在__TLAB的工作空间中建立了矩阵A以供用户使用
四、矩阵的下标例如已在__TLAB工作空间中建立了如下矩阵A=123456789若要修改该矩阵中的个别元素时,利用下表就很方便例如输入下列命令A23=15;A21:2=
[510];此时,A变成:A=12351015789当访问不存在的矩阵元素时,会产生出错信息,如A42Indexex__eds__trixdimensions.另一方面,如果用户在矩阵下标以外的元素中存储了数值,那么矩阵的行数和列数会相应自动增加,如A42=19A=123510157890190
五、矩阵的基本操作
(1)矩阵的连接通过连接操作符[],可将矩阵连接成大矩阵,例如A=[123;456];B=[789;101112];C=[AB]C=123789456101112D=[A;B]D=123456789101112
(2)矩阵行列的删除利用空矩阵可从矩阵中删除指定行或列,例如A2:=[];%表示删除A的第二行A:2=[];%表示删除A的第二列A:
[12]=[];%表示删除A的第
一、二列
(3)利用diag函数抽取矩阵的对角元素若A是一个矩阵,则diagA是一个列向量,其元素为A的主对角线元素diagAk是一个列向量其元素为A的第k条对角线元素,当k0时在主对角线之上,k0时在主对角线之下
(4)利用rot90函数旋转矩阵.rot90A可将矩阵A按反时针方向旋转90rot90Akk为整数可将矩阵A按反时针方向旋转k*
90.
(5)利用fliplr函数左右翻转矩阵.
(6)利用flipud函数上下翻转矩阵.
(7)利用tril函数抽取下三角矩阵trilA产生下三角矩阵,阶数同A,非零元素于A的下三角部分相同trilAk抽取A的第k条对角线及其下部的三角部分(k的正负含义同上)
(8)利用triu函数抽取上三角矩阵trilA产生上三角矩阵,阶数同A,非零元素于A的上三角部分相同triuAk的用法同上例如输入下列命令A=[123;456;789];B1=diagAB1=159B2=diagA1B2=26B3=rot90AB3=369258147B4=fliplrAB4=321654987B5=flipudAB5=789456123B3=trilAB3=100450789
(9)利用冒号从大矩阵中抽取小矩阵例如设A是一个8阶方阵则B=A2:43:7;产生一个3*5矩阵,元素是A的第2行到第4行,第3列到第7列的元素B=A2:4:;产生一个3*8矩阵,元素是A的第2行到第4行的元素B=A:;表示将A的元素按列排列后方入一个列向量中A的本身保持不变
六、操作符
(1)__TLAB的算术运算符加法+除法/元素对元素乘法.*减法--左除\元素对元素除法./乘法*乘方^元素对元素左除.\元素对元素乘方.^其中元素对元素的运算符是对矩阵或向量中的每个元素进行操作.例如:A=[123;456;789]A=123456789A.^2ans=149162536496481B=
[123];C=
[246];D=B./CD=
0.
50000.
50000.5000E=B.\CE=222
(2)__TLAB的关系运算符小于小于等于=大于大于等于=等于==不等于~=对大小相同的两个矩阵运行关系运算符时,是对相应的每一个元素进行比较如果能满足指定关系,则返回1,否则返回0若其中一个是标量,则关系运算符将标量与另一个矩阵中的每个元素一一比较例如A=[12;34];B=[10;35];A=Bans=1011A==Bans=1010B2ans=0011
(3)__TLAB的逻辑运算符与非~或|逻辑异或XOR同关系运算符一样,当逻辑表达式的值为真时,返回1,否则返回0例如A=[10;23];B=[11;22];ABans=1011A|Bans=1111~Aans=0100XORABans=0100A3ans=1011
七、基本数学函数
(1)三角函数与反三角函数sinXcosXtanXasinX反正弦acosXatanX
(2)双曲函数与反双曲函数sinhX双曲正弦coshXtanhXasinhX反双曲正弦acoshXatanhX
(3)指数函数和对数函数expX指数函数,logX以e为底的自然对数,log10X以10为底的常用对数log2X以2为底的常用对数
(4)取整和求余函数fixX取X的整数部分,floorX朝负无穷大方向取整,__ilX朝正无穷大方向取整,roundX朝与X最近的整数取整即四舍五入,remXY求X除以Y的余数modXY模数,即有符号数的除后余数
(5)其它常用函数absX取绝对值或复数模sqrtX求X的平方根signX符号函数上述函数中的X可以时标量,也可以是一个矩阵例如sinpi/3ans=
0.8660A=[01;3-2];expAans=
1.
00002.
718320.
08550.1353signAans=011-1
(6)表达式将变量、数值、函数用操作符连接起来就构成了表达式例如a=1+sqrt10/2;b=sinexp-
2.3+eps;c=pi*b;行末的分号表示不显示结果因此,上述表达式将计算后的结果赋给左边相应的变量,但并不在屏幕上显示结果如果要察看变量的值,只需键入相应的变量名
八、__TLAB的符号计算在数学物理和工程应用中常常会遇到符号计算的问题此时的操作对象不是数值而是数学符号和符号表达式例如符号计算就是将符号表达式按照微积分,线性代数等课程中的规则进行运算,且尽可能地给出解析表达式结果1993年,__thWorks公司从___的Waterloo__ple公司__了__ple软件的使用权随后,__thWorks公司以__ple的内核作为__TLAB符号计算的引擎,依赖__ple已有的数据库,__了实现符号计算的工具箱下面,我们简述如何创建一个符号对象在__TLAB中我们可以采用sym函数来创建符号变量、符号表达式和符号矩阵等符号对象例如a=sqrt2%a是一个数值变量a=
1.4142b=syma%将a转换成一个符号变量b=sqrt2c=symsin^t+logt%创建一个符号表达式c=sin^t+logtA=sym[ab;cd]%创建一个符号矩阵A=[ab][cd]
九、__TLAB的绘图功能
(1)二维图形的绘制函数plot是最基本,最重要的二维图形命令下面简要介绍plot的使用方法plotxy绘制二元数组的曲线图形其中x为横坐标数据,y为纵坐标数据,若xy是同规模的向量,则绘制一条曲线若x是向量而y是矩阵,则绘制多条曲线,它们具有相同的横坐标数据例如x=0:pi/100:2*pi;%确定自变量x的变化范围y=sinx;plotxy;%绘制y=sinx的图形如图1所示:z=cosx;w=
0.2*x-
0.3;plotx[y;z;w];%在同一坐标轴里,绘制三个函数的图形,如图2所示:图1y=sinx的图形图2y=sinxz=cosxw=
0.2*x-
0.3的图形2三维图形的绘制绘制三维曲线最常用的函数是plot3它的一般格式为plot3xyz例如要绘制x=sinty=costz=
1.5*tt的三维曲线图可输入下列命令t=0:pi/50:5*pi;plot3sintcost
1.5*t;gridon其效果如图3所示__TLAB除了能够绘制曲线图形外,还能够绘制网格图形和曲面图例如可以利用meshxyz函数绘制三维网格图形,可以利用surfxyz函数绘制曲面图下面利用mesh函数来绘制曲面的三维网格图:x=-8:
0.5:8;y=x;[xy]=meshgridxy;r=sqrtx.^2+y.^2+eps;z=sinr./r;meshxyz;其效果如图4所示图3三维曲线的图形图4曲面的三维网格图
十、__TLAB程序设计__tlab作为一种高级计算机语言,不仅可以采用人机交互式的命令行方式进行工作,还可以像其他高级语言一样进行控制流的程序设计下面我们将讨论__TLAB下进行程序设计的有关问题我们将讨论脚本文件和函数文件的编写、全局和局部变量的使用、流程控制结构、字符串计算、数值输入、程序调试等问题1文件式文件和函数文件的定义__TLAB的M文件有两类,文件式文件和函数文件我们将原本在__TLAB环境下直接输入的语句,放在一个以.m为后缀的文件中,这一文件就称为文件式文件有了文件式文件,可直接在__TLAB中输入文件名(不含后缀),这时__TLAB会打开这一文件式文件,并依次执行文件中的每一条语句,这与在__TLAB中直接输入语句的结果完全一致另一类M文件是函数文件,它的标志为文件内容的第一行为function语句函数文件能够接受输入参数并返回输出参数在__TLAB中,函数名必须和M文件名相同例分别用命令文件和函数文件将华氏温度转化为摄氏温度1文件式文件输入以下内容并以文件名f2cs.m存盘clear;%清除当前工作空间中的变量f=inputPleaseinputFahrenheittemperature:;c=5*f-32/9;fprintfThe__ntigradeTemperatureis%g\nc;在__tlab命令窗口中输入f2cs,即可执行该命令文件不用输入参数,也没有输出参数,执行完后,变量c、f仍保留在工作空间(可用whos查看)2函数文件建立函数文件f2cf.m,内容如下functionc=f2cffc=5*f-32/9;在__tlab命令窗口中输入f2cf100调用该函数时,既有输入参数,又有输出参数;函数调用完后,变量c、f没有被保留在工作空间2函数工作空间每个M文件的函数都有一块用作为工作空间的存储区域,它与__TLAB的基本工作空间不通,这块区域称为函数工作空间每个函数都有自己的工作空间,其中保存着在函数中使用的局部变量在调用函数时,只有输入变量传递给函数的变量值,才能在函数中使用,它们来自于被调用函数所在的基本工作空间或函数空间同样,函数返回的结果传递给被调用函数所在的基本空间或函数工作空间3子函数在函数文件中可以包含多个函数,其中第一个函数称为主函数,其函数名与文件名相同,它可由其他M文件或基本工作空间引用在M函数文件中的其他函数称为子函数,它只能有这一个M函数文件中得主函数或其他子函数引用每个子函数也由函数定义行开始,紧跟其后的语句为函数体各种子函数的次序任意,但主函数必须是第一个函数例1我们编写一个求均值和中值的函数mmval.m,它包含了两个子函数用__TLABfunction[__gmed]=mmvalu%Findmeanandmedianwithinternalfunctionsn=lengthu;__g=meanun;med=medianun;functiona=meanvn%Calculate__eragea=sumv/n;functionm=medianvn%Calculatemedianw=sortv;ifremn2==1m=wn+1/2;elsem=wn/2+wn/2+1/2;end4程序控制结构程序控制结构有三种顺序结构、选择结构和循环结构;任何复杂的程序都可以由这三种基本结构构成1)顺序结构按排列顺序依次执行,直到程序的最后一个语句这是最简单的一种程序结构,一般涉及数据的输入、数据的计算或处理、数据的输出等数据输入的__TLAB语句为A=input提示信息;其中提示信息为字符串A=input提示信息,s;允许用户输入字符串name=inputWhatsyourname,s数据输出的__TLAB语句为dispX;其中X是字符串或矩阵程序的暂停的__TLAB语句为pausen;其中n是延迟时间,以秒为单位;也可以直接使用pause,则将暂停程序,直到用户按任一键后继续若想强行中止程序的运行,可以使用Ctrl+c2)选择结构(a)条件语句单分支ifexpr(条件)statement(语句组)end双分支ifexpr(条件)statement1(语句组1)elsestatement2(语句组2)end多分支ifexpr1(条件1)statement1(语句组1)elseifexpr2(条件2)statement2(语句组2)......elseifexprm(条件m)statementm(语句组m)elsestatement(语句组)end注在同一个if块中,可含有多个elseif语句但else只能有一个if语句还可嵌套使用,多层嵌套可完成复杂的设计任务例2输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出程序如下c=input请输入一个字符s;ifc=Ac=Zdispcharabsc+absa-absA;elseifc=ac=zdispcharabsc-absa+absA;elseifc=0c=9dispabsc-abs0;elsedispc;end(b)情况切换语句switch语句可根据表达式的不同取值执行不同的语句,这相当于多条if语句的嵌套使用switchexpr(表达式)caseexpr1(表达式1)statement1(语句组1)caseexpr2(表达式2)statement2(语句组2)......caseexprm(表达式m)statementm(语句组m)otherwisestatement(语句组)end其中switch子句后面的表达式可以是一个标量或字符串当任意一个分支的语句执行完后,直接执行switch语句后面的语句例3某商场对顾客所__的商品实行打折销售,标准如下商品__用pri__来表示pri__200没有折扣200≤pri__5003%折扣500≤pri__10005%折扣1000≤pri__10%折扣输入所售商品的__,求其实际销售__程序如下pri__=input请输入商品__;switchfixpri__/100case{01}%__小于200rate=0;case{234}%__大于等于200但小于500rate=3/100;case{56789}%__大于等于500但小于1000rate=5/100;otherwise%__大于等于1000rate=10/100;endpri__=pri__*1-rate%输出商品实际销售__3)循环结构(a)指定次重复循环语句for语句可完成指定次重复的循环,这是广泛应用的语句forvariable=exprstatement(循环体语句)end其中expr可以是行向量,也可以是矩阵for语句还可以嵌套使用,从而构成多重循环for循环中可利用break语句来终止for循环例4求[100,200]之间第一个能被21整除的整数程序如下forn=100:200ifremn21~=0continueendbreakendn(b)不定次重复循环语句while语句可完成不定次重复的循环,它与for语句不同,每次循环前要判别其条件,如果条件为真或非零值,则循环,否则结束循环而条件是一表达式,其值必定会受到循环语句的影响whileexpr(条件)statement(循环体语句)end例5求出一个值n,使其n!最大但小于1050程序如下r=1;k=1;whilerle50r=r*k;k=k+1;endk=k-1;r=r./k;k=k-1;disp[‘The’num2strk’!’num2strr]PAGE1。