中国高校课件下载中心 》 教学资源 》 大学文库

《数字信号处理》教学参考资料(MATLAB 5手册)第2章 MATLAB启动

文档信息
资源类别:文库
文档格式:PDF
文档页数:26
文件大小:1.01MB
团购合买:点击进入团购
内容简介
2.1 启动和退出MATLAB 11 2.2 MATLAB中矩阵和多维矩阵介绍 12 2.3 MATLAB中的变量 16 2.4 算术表达式和数学函数 19 2.5 计算浮点运算次数和时间管理 25 2.6 输出格式 27 2.7 帮助命令和示范 28 2.8 保存和装载 31 2.9 命令文件和函数文件 32
刷新页面文档预览

China-pub.coM 下载 第2章 MATLAB启动 首先描述如何启动和如何退出MATLAB,这一点很重要。然后描述如何进行分配和计算, 也演示如何储存结果、获得帮助和定义你自己的函数。本章的部分内容对MATLAB老用户可 以跳过不读,但是,建议快速浏览本章,也建议参见附录A“MATLAB初步”。 2.1启动和退出MATLAB 不同的计算机系统,MATLAB的启动也不一样。在Vindows和Macintosh系统中,程序通常通 过点击一个图标而启动。在UNX系统中,程序是通过在命令行系统提示符后键入如下字符启动: matlab 如果上述工作有问题,可请教系统管理员。当启动MATLAB时,如果matlabrc.m和 startup.m文件存在,则执行这些文件。在这些文件中,为满足个人需要,用户可以给定命令 以调整MATLAB,例如,constants,用于设置图形等。在一个多用户系统上,系统管理员存储 matlabre.m文件,但你也能为自己的使用创建文件startup.m,参见例2.20(c)。 要退出MATLAB,键入quit或exit。 命令集1 退出和中断 exit,quit 结束MATLAB会话。程序完成,如果没有明确保存,则变量中的 数据丢失。参见2.8节。 Ctrl-c 中断一个MATLAB任务。例如,当MATLAB正在计算或打印时, 中断一个任务,但会话并没有结束。 除此之外,对一些系统有指定的菜单选择。例如,在Windows和Macintosh系统中,在文 件菜单下可以找到选项quit。 当编辑或执行MATLAB时,下列的快捷键十分有用。通常因为不同的平台使用不同的键, 因此,给定了一些替换键。在你的系统上试一下这些键,注意哪些键组合使用。 命令集2 特殊的功能键 ↑或ctr1p 恢复前面的命令。 ↓或ctr1n 恢复当前命令之后键入的命令。 →或Ctr1_f 向右移动一个字符。 -或Ctrl_b 向左移动一个字符。 Delete,Backspace删除字符。 Ctr11或Ctr1 向左移动一个字。 Ctr1_r或Ctr1_ 向右移动一个字

下载 第2章 M AT L A B启动 首先描述如何启动和如何退出 M AT L A B,这一点很重要。然后描述如何进行分配和计算, 也演示如何储存结果、获得帮助和定义你自己的函数。本章的部分内容对 M AT L A B老用户可 以跳过不读,但是,建议快速浏览本章,也建议参见附录 A“M AT L A B初步”。 2.1 启动和退出M AT L A B 不同的计算机系统,M AT L A B的启动也不一样。在Windows 和M a c i n t o s h系统中,程序通常通 过点击一个图标而启动。在U N I X系统中,程序是通过在命令行系统提示符后键入如下字符启动: m a t l a b 如果上述工作有问题,可请教系统管理员。当启动 M AT L A B时,如果 m a t l a b rc . m和 s t a rt u p . m文件存在,则执行这些文件。在这些文件中,为满足个人需要,用户可以给定命令 以调整M AT L A B,例如,c o n s t a n t s用于设置图形等。在一个多用户系统上,系统管理员存储 m a t l a b rc . m文件,但你也能为自己的使用创建文件 s t a rt u p . m,参见例2 . 2 0 ( c )。 要退出M AT L A B,键入q u i t或e x i t。 命令集1 退出和中断 e x i t,q u i t 结束M AT L A B会话。程序完成,如果没有明确保存,则变量中的 数据丢失。参见2 . 8节。 C t r l - c 中断一个 M AT L A B任务。例如,当 M AT L A B正在计算或打印时, 中断一个任务,但会话并没有结束。 除此之外,对一些系统有指定的菜单选择。例如,在 Wi n d o w s和M a c i n t o s h系统中,在文 件菜单下可以找到选项q u i t。 当编辑或执行M AT L A B时,下列的快捷键十分有用。通常因为不同的平台使用不同的键, 因此,给定了一些替换键。在你的系统上试一下这些键,注意哪些键组合使用。 命令集2 特殊的功能键 ↑或 C t r l_p 恢复前面的命令。 ↓或 C t r l_n 恢复当前命令之后键入的命令。 →或 C t r l_f 向右移动一个字符。 ←或 C t r l_b 向左移动一个字符。 Delete, Backspace 删除字符。 C t r l_l 或 C t r l_← 向左移动一个字。 C t r l_r 或 C t r l_→ 向右移动一个字

12 China-pu5.com ATLAB5手册 载 Ctrl_a或Home 移动到行的第一个字符。 Ctrl_e 移动到行尾。 Ctrl_k 删除到行尾。 cedit 在不同的快捷键间转换。键入help cediti可得到更多的信息。 2.2 MATLAB中矩阵和多维矩阵介绍 MAⅡLAB中数据的基本格式是矩阵。二维矩阵是一个带有以行和列排列的元素的矩形表。如果 有m行、n列,这个矩阵的大小就是m×n。多维矩阵的维数大于2,就是说其大小为mXn×…Xp。 ■例2.1 一个2×3的矩阵如下: 第1行是(123》,第2列是()。 ■ 矩阵的元素,即数a,通常是实数,但也可以是复数。一个a,是指第行、第j列的数。在 例2.1中,有a2=4。在本章,仅涉及数值矩阵,即矩阵包含的仅是数字。包含字符文本的矩阵 (见命令集4)和细胞矩阵,在5.5节中介绍,这些矩阵包含了不同类型的数据。 当矩阵仅由一行组成时,它是一个特例,就是一个行向量。如果矩阵仅有一列,就是一 个列向量。向量是矩阵的特例。向量中元素的数量是向量的长度。 如果矩阵的维数是1×1,它是一个标量,即是一个数。 在MATLAB中,一个变量可以通过给它分配一个值来定义,如下所示: variable =expression 在expression之后按回车键。表达式可以是由数字、变量、操作符和函数等组成。 定义一个变量的另一个方法是输入expression项,然后MATLAB对预定义变量ans(answer 的缩写)分配这个表达式值。 二维矩阵的分配可以有多种方法实现。最简单的方法是由方括号(参见help paren)包围的 逐行给定元素。如果定义一个标量,则方括号就不需要了。 相同行中的元素是由一行或多个空格‘’或一个逗号‘,’分隔,列由分号‘;或回车键分 隔。没有结尾分号的每个命令在屏幕上显示出其结果。若结尾带分号,就执行计算,但计算结 果并不显示。在MATLAB中使用的标点符号的一览表可以通过输入help punc得到。 一个变量的值可以通过输入它的名字和按回车键获得,MATLAB以显示这个变量的名字 和值作为回答。如果这个变量并不存在,就显示一个错误信息。显示一个变量内容的另一个 方法可参见5.1.3节。 一个矩阵或一个向量的指定元素是由指定它的索引来决定。例如:二维矩阵: variable (rowIndex,columnIndex) 如果这个变量是一个向量,就只允许有一个索引。如何处理多维矩阵将在例2.3中讨论

C t r l_a 或 H o m e 移动到行的第一个字符。 C t r l_e 移动到行尾。 C t r l_k 删除到行尾。 c e d i t 在不同的快捷键间转换。键入help cedit可得到更多的信息。 2.2 MAT L A B中矩阵和多维矩阵介绍 M AT L A B中数据的基本格式是矩阵。二维矩阵是一个带有以行和列排列的元素的矩形表。如果 有m行、n列,这个矩阵的大小就是m×n。多维矩阵的维数大于2,就是说其大小为m×n×…×p。 ■ 例2 . 1 一个2×3的矩阵如下: 第1行是(1 2 3),第2列是 。 矩阵的元素,即数 ai j,通常是实数,但也可以是复数。一个 ai j是指第i行、第j列的数。在 例2 . 1中,有a2 1= 4。在本章,仅涉及数值矩阵,即矩阵包含的仅是数字。包含字符文本的矩阵 (见命令集4 )和细胞矩阵,在5 . 5节中介绍,这些矩阵包含了不同类型的数据。 当矩阵仅由一行组成时,它是一个特例,就是一个行向量。如果矩阵仅有一列,就是一 个列向量。向量是矩阵的特例。向量中元素的数量是向量的长度。 如果矩阵的维数是1×1,它是一个标量,即是一个数。 在M AT L A B中,一个变量可以通过给它分配一个值来定义,如下所示: variable = e x p r e s s i o n 在e x p r e s s i o n之后按回车键。表达式可以是由数字、变量、操作符和函数等组成。 定义一个变量的另一个方法是输入 e x p r e s s i o n项,然后M AT L A B对预定义变量a n s( a n s w e r 的缩写)分配这个表达式值。 二维矩阵的分配可以有多种方法实现。最简单的方法是由方括号 [ ] (参见help paren)包围的 逐行给定元素。如果定义一个标量,则方括号就不需要了。 相同行中的元素是由一行或多个空格‘’或一个逗号‘,’分隔,列由分号‘; ’或回车键分 隔。没有结尾分号的每个命令在屏幕上显示出其结果。若结尾带分号,就执行计算,但计算结 果并不显示。在M AT L A B中使用的标点符号的一览表可以通过输入help punct得到。 一个变量的值可以通过输入它的名字和按回车键获得, M AT L A B以显示这个变量的名字 和值作为回答。如果这个变量并不存在,就显示一个错误信息。显示一个变量内容的另一个 方法可参见5 . 1 . 3节。 一个矩阵或一个向量的指定元素是由指定它的索引来决定。例如:二维矩阵: variable (rowIndex, columnIndex) 如果这个变量是一个向量,就只允许有一个索引。如何处理多维矩阵将在例 2 . 3中讨论。 1 2 M ATLAB 5 手册 下载下载 ■

China-bub.coM 第2章MATLAB启动 13 下载 ■例2.2 (a)一个标量的指定。如果写入x=7,则在屏幕上打印如下: X= 7 (b)如果仅写入7,则结果变为: ans= 7 (©)2×3维情况下一个矩阵的定义可以通过逐行给出其元素: A=[123 456] 还在屏幕上给出如下结果: A= 123 456 ()也可以在同一行上用分号来分隔行以给出所有的元素: A=[1234563 在命令后的一个分号禁止打印出结果。 (e)一个行向量和一个列向量的定义: rowvec:=【1.23.24]: co1vec=【2.7;3.4-9.2]: ()显示一个变量的值。输入colvec,MATLAB显示: colvec= 2.7000 3.4000 -9.2000 (g)逐个元素地分配矩阵: B(1,1)=1: B(1,2)=7: B(2,1)=-5: B(2,2)=0 得到的结果是: B= 17 -50 ■ 三维矩阵和其他数据结构在函数自变量中依次使用行、列和页维数次序。对于多维矩阵 有两个索引原理,最自然的就是矩阵索引,它给出了每个元素在每一维中的一个位置,例如, 在上例中的行和列的索引。图2-1给出了可视化的3×3×2的三维矩阵的不同元素的索引。 另一个索引原理是线性索引方法。一些命令把整个矩阵说明为一个长列元素,例子之一 是reshape(详见命令集37)。如果所有的元素被放在一行上,那么对各元素给定的一个线性索 引号说明了一个指定矩阵的索引给出的某个位置,如图2-2所示。 创建一个多维矩阵有多种方法

■ 例2 . 2 ( a )一个标量的指定。如果写入 x= 7,则在屏幕上打印如下: x = 7 (b) 如果仅写入7,则结果变为: a n s = 7 (c) 2×3维情况下一个矩阵的定义可以通过逐行给出其元素: A=[1 2 3 4 5 6] 还在屏幕上给出如下结果: A = 1 2 3 4 5 6 (d) 也可以在同一行上用分号来分隔行以给出所有的元素: A=[ 1 2 3;4 5 6]; 在命令后的一个分号禁止打印出结果。 ( e )一个行向量和一个列向量的定义: rowvec=[1.2 3.2 4]; colvec=[2.7; 3.4; -9 . 2 ] ; (f) 显示一个变量的值。输入c o l v e c,M AT L A B显示: c o l v e c= 2 . 7 0 0 0 3 . 4 0 0 0 -9 . 2 0 0 0 (g) 逐个元素地分配矩阵: B ( 1,1 ) = 1; B ( 1,2 ) = 7; B ( 2,1 ) =-5; B ( 2,2 ) = 0 得到的结果是: B= 1 7 -5 0 三维矩阵和其他数据结构在函数自变量中依次使用行、列和页维数次序。对于多维矩阵 有两个索引原理,最自然的就是矩阵索引,它给出了每个元素在每一维中的一个位置,例如, 在上例中的行和列的索引。图 2 - 1给出了可视化的3×3×2的三维矩阵的不同元素的索引。 另一个索引原理是线性索引方法。一些命令把整个矩阵说明为一个长列元素,例子之一 是r e s h a p e (详见命令集3 7 )。如果所有的元素被放在一行上,那么对各元素给定的一个线性索 引号说明了一个指定矩阵的索引给出的某个位置,如图 2 - 2所示。 创建一个多维矩阵有多种方法。 第2章 M AT L A B启动 1 3 下载下 ■

14 China-pub.Com MATLAB5手册 下载 1,12L2232 o国6 23J 2.1.22.2223,2 4 回47 2.1.d221230 3,123.2,233.2 2因8 31.d3213.3 3-6 图2-1一个3×3×2矩阵的元素索引 图2-2一个3×3×2矩阵的线性索引 ■例2.3 (a)有两个二维矩阵A和B A= 1 2 3 5 6 B= 11 12 13 1 15 16 可以很容易地构造一个三维矩阵C: C(:,:,1)=A: C(:,:,2)=B: 给出: C(:,:,1)= 12 5 6 C(:,:,2)= 1112 13 141516 b)为改变C中的一个元素,可以输入: C(1,1,1)=100: 得到: C(:,:,1)= 100 2 3 5 6 ■ MATLAB允许在同一命令行上定义多个变量,也可以在按回车键之前通过输入三个点 “……”以便在下一行继续输入。 ■例2.4 (a)在一行上的几个命令: x=7:y=4.6735567;z=x^y: (b)一个长的命令可以分成几行书写: mat1=[1.21.1-1.11.41,1-1.1-1.2. -1.1-1.31.7] ■ MATLAB记忆不同矩阵变量的维数。为了获得一个变量的维数,可以使用命令ize和length

■ 例2 . 3 (a) 有两个二维矩阵A和B 可以很容易地构造一个三维矩阵 C : C (:,:,1 ) = A; C (:,:,2 ) = B; 给出: (b) 为改变C中的一个元素,可以输入: C ( 1,1,1 ) = 1 0 0; 得到: M AT L A B允许在同一命令行上定义多个变量,也可以在按回车键之前通过输入三个点 “… …”以便在下一行继续输入。 ■ 例2 . 4 (a) 在一行上的几个命令: x = 7;y=4.6735567; z=x^y; (b) 一个长的命令可以分成几行书写: M AT L A B记忆不同矩阵变量的维数。为了获得一个变量的维数,可以使用命令s i z e和l e n g t h。 1 4 M ATLAB 5 手册 下载 图2-1 一个3×3×2矩阵的元素索引 图2-2 一个3×3×2矩阵的线性索引 ■ ■

China-pub.CoM 第2章MATLAB启动 15 下载 现在,令A是一个m×n×…×p矩阵,x是m×1矩阵(一个列向量)或是1×n矩阵(一个行向 量),MATLAB有如下的命令集: 命令集3 变量大小 size(A) 给出包含A的维数的一个行向量。在这个返回向量 中的第一个元素是行数,随后是列数、页数等。 [m,n,…,p]= 给出A的维数、m行数和n列数,即两个标量。如 size(A) 果给出的自变量少,则后边的维数加入最后一个 自变量。 size(A,dim) 在数组dim中给出A的维数。 size(x) 给出向量x的大小或长度的一个行向量。如果x是一 个列向量,则第1个元素是m,第2个元素是1。如果 x是一个行向量,则第1个元素是1,第2个元素是n。 length(x) 给出一个向量的长度,即如果x是一个行向量, 那么这个向量的长度就是:如果x是一个列向 量,那么这个向量的长度就是m。 length(A) 给出m,n,…,p的最大数。 ndims 返回多维矩阵A的维数。这个函数等价于 length(size(A)。 sub2ind(size,m,n,") 给出维数为ie的一个矩阵的线性索引寻m,m,)。 [m,n,…]=ind2sub 用线性索引ind对元素给出索引(m,n,…),要把 (size,ind) 图像矩阵说明为多维,其参数size必须是一个向 量。 注意有时用字dimemsion代替维数和长度,通常它可以表示与一个向量范数相关的 长度和与一个矩阵范数相关的矩阵的维数。可是,在本书中,维数和长度的使用与 size和length有相同的含义。当这个长度概念以其他意义使用时,就要说明。 ■例2.5 (a)命令thesize1=size(A),式中的A与例2.2(c)中的相同,结果为: thesizel= 23 命令thesize2=size(c),式中的C是例2.3中的三维矩阵,得到: thesize2= 2 33 (b)检查图2-2中的信息是否正确,可以使用: sub2ind([332],1,2,2) ans 13 ■

现在,令A是一个m×n×…×p矩阵,x是m×1矩阵(一个列向量)或是1×n矩阵(一个行向 量),M AT L A B有如下的命令集: 命令集3 变量大小 s i z e ( A ) 给出包含A的维数的一个行向量。在这个返回向量 中的第一个元素是行数,随后是列数、页数等。 [ m,n,…,p ]= 给出A的维数、m行数和n列数,即两个标量。如 s i z e ( A ) 果给出的自变量少,则后边的维数加入最后一个 自变量。 s i z e ( A,d i m ) 在数组d i m中给出A的维数。 s i z e ( x ) 给出向量x的大小或长度的一个行向量。如果x是一 个列向量,则第1个元素是m,第2个元素是1。如果 x是一个行向量,则第1个元素是1,第2个元素是n。 l e n g t h ( x ) 给出一个向量的长度,即如果 x是一个行向量, 那么这个向量的长度就是 n;如果 x是一个列向 量,那么这个向量的长度就是 m。 l e n g t h ( A ) 给出m,n,…,p的最大数。 n d i m s 返 回 多 维 矩 阵 A 的 维 数 。 这 个 函 数 等 价 于 l e n g t h ( s i z e ( A ) )。 s u b 2 i n d ( s i z e,m,n,…) 给出维数为s i z e的一个矩阵的线性索引号(m,n,…)。 [ m,n,…]= ind2sub 用线性索引i n d对元素给出索引(m,n,…),要把 ( s i z e,i n d ) 图像矩阵说明为多维,其参数 s i z e必须是一个向 量。 注意 有时用字d i m e m s i o n代替维数和长度,通常它可以表示与一个向量范数相关的 长度和与一个矩阵范数相关的矩阵的维数。可是,在本书中,维数和长度的使用与 s i z e和l e n g t h有相同的含义。当这个长度概念以其他意义使用时,就要说明。 ■ 例2 . 5 (a) 命令t h e s i z e 1 = s i z e ( A ),式中的A与例2.2(c) 中的相同,结果为: thesize1= 2 3 命令t h e s i z e 2 = s i z e ( C ),式中的C是例2 . 3中的三维矩阵,得到: t h e s i z e 2 = 2 3 3 ( b )检查图2 - 2中的信息是否正确,可以使用: 第2章 M AT L A B启动 1 5 下载 ■

16 China-pub.com MATLAB5手册 下载 2.3 MATLAB中的变量 在MATLAB中,变量名可以有19个字符。字母A~Z、a~z、数字和下划线‘_’可以作 为变量名,但第一个字符必须是一个字母。预定义函数名也可以像一个变量名那样使用,但 函数只有在变量由命令clear删除后才能使用,所以,不主张这样使用。 MATLAB是区分大小字母的,如矩阵a和A是不一样的。MATLAB命令通常是用小写字母 书写。例如,命令bs(A)给出了A的绝对值,但ABS(A)会导致在屏幕上显示如下错误信息: ??Undefined variable or function ABS;Caps Lock may be on 在变量使用之前,用户不需要指定一个变量的数据类型,也不必声明变量。MATLAB有 许多不同的数据类型,这对决定变量的大小和形式是有价值的,特别适合于混合数据类型、 矩阵、细胞矩阵、结构和对象。 对于每一种数据类型,有一个名字相同的、可以把变量转换到那种类型的函数。所用的 不同的基本数据类型如下所示。 命令集4 数据类型和转换函数 double 是一个双精度浮点数,每个存储的双精度数用64位。 char 用于存储字符,每个存储的字符用16位。 sparse 用于存储稀疏矩阵,由一个sparse使用的内存是4+(非零元素数*16)。 unit8 是一个无符号的8位整型数。数学函数并不对使用到的这种数据类型进行 定义,如存储图像。 混合数据类型在第5章和第12章中描述。 在MATLAB中,有许多功能可以帮助找出一个变量是否是一个特殊类型。也有一个特殊 的逻辑向量,它是由命令repmat生成(见第4.1节)。 命令集5 逻辑函数 iscell(x) 如果x是一个细胞矩阵,返回1:否则为0。可参见第5.5节。 isfield(x) 如果x在一个结构中是一个域,返回1:否则为0。可参见第12.5节。 isfinite(x) 返回一个与x相同大小的向量,这个x包含有限元的位置为1,其 他位置为0。 islogical(x) 如果x是一个逻辑向量,返回1:否则为0。 isnumeric(x) 如果x是一个数值向量,返回1:否则为0。 isstr(x) 如果x是一个字符串,返回1:否则为0。可参见第5.1节。 isstruct(x) 如果x是一个结构,返回1:否则为0。可参见第12.5节。 isobject(x) 如果x是一个对象,返回1:否则为0。可参见第12.6节。 logical(x) 返回一个可以使用的逻辑向量,例如逻辑索引或逻辑测试。 ■例2.6 如果一个函数是要应用到一个矩阵中的隔一个元素上,那么可以这样做:

2.3 MAT L A B中的变量 在M AT L A B中,变量名可以有 1 9个字符。字母 A~Z、a~z、数字和下划线‘ _’可以作 为变量名,但第一个字符必须是一个字母。预定义函数名也可以像一个变量名那样使用,但 函数只有在变量由命令c l e a r删除后才能使用,所以,不主张这样使用。 M AT L A B是区分大小字母的,如矩阵 a和A是不一样的。M AT L A B命令通常是用小写字母 书写。例如,命令a b s ( A )给出了A的绝对值,但A B S ( A )会导致在屏幕上显示如下错误信息: 在变量使用之前,用户不需要指定一个变量的数据类型,也不必声明变量。 M AT L A B有 许多不同的数据类型,这对决定变量的大小和形式是有价值的,特别适合于混合数据类型、 矩阵、细胞矩阵、结构和对象。 对于每一种数据类型,有一个名字相同的、可以把变量转换到那种类型的函数。所用的 不同的基本数据类型如下所示。 命令集4 数据类型和转换函数 d o u b l e 是一个双精度浮点数,每个存储的双精度数用 6 4位。 c h a r 用于存储字符,每个存储的字符用 1 6位。 s p a r s e 用于存储稀疏矩阵,由一个 s p a r s e使用的内存是4 + (非零元素数* 1 6 )。 u n i t 8 是一个无符号的8位整型数。数学函数并不对使用到的这种数据类型进行 定义,如存储图像。 混合数据类型在第5章和第1 2章中描述。 在M AT L A B中,有许多功能可以帮助找出一个变量是否是一个特殊类型。也有一个特殊 的逻辑向量,它是由命令r e p m a t生成(见第4 . 1节)。 命令集5 逻辑函数 i s c e l l ( x ) 如果x是一个细胞矩阵,返回1;否则为0。可参见第5 . 5节。 i s f i e l d ( x ) 如果x在一个结构中是一个域,返回1;否则为0。可参见第1 2 . 5节。 i s f i n i t e ( x ) 返回一个与x相同大小的向量,这个 x包含有限元的位置为 1,其 他位置为0。 i s l o g i c a l ( x ) 如果x是一个逻辑向量,返回1;否则为0。 i s n u m e r i c ( x ) 如果x是一个数值向量,返回1;否则为0。 i s s t r ( x ) 如果x是一个字符串,返回1;否则为0。可参见第5 . 1节。 i s s t r u c t ( x ) 如果x是一个结构,返回1;否则为0。可参见第1 2 . 5节。 i s o b j e c t ( x ) 如果x是一个对象,返回1;否则为0。可参见第1 2 . 6节。 l o g i c a l ( x ) 返回一个可以使用的逻辑向量,例如逻辑索引或逻辑测试。 ■ 例2.6 如果一个函数是要应用到一个矩阵中的隔一个元素上,那么可以这样做: 1 6 M ATLAB 5 手册 下载

China-pub.com 第2章MATLAB启动 下载 data rand(1,10) data 0.6700 0.2009 0.2731 0.6262 0.5369 0.0595 0.0890 0.2713 0.4091 0.4740 使用repmat创建x: x=repmat([10],1,5) X 0 1 01010 10 filter logical(x) filter 10101010+ 10 为使用滤波器,给出下面的命令 halfdata data(filter) halfdata 0.67000.27310.53690.08900.4091 为使用与函数round一起的过滤器,可输入: result round(data(filter)) result 0 10 0 命令repmat.产生块矩阵,第4.1节将进一步对此进行描述。 ■ 在MATLAB中有许多如下的预定义变量: 命令集6 MATLAB中预定义变量 ans 分配最新计算表达式的值,这个表达式并没有给定一个名字。 eps 返回机器精度,定义1与最接近可代表的浮点数之间的差。ps数 在一些命令中用作偏差。用户可以设定一个新的eps值,但要注意 这个eps值不能由命令clear恢复。 realmax 返回计算机能处理的最大浮点数。 realmin 返回计算机能处理的最小的非零浮点数。 pi 返回π,即3.141592653589793,如果eps足够小,那么用16位十进 制数来表示其精度。 inf 定义为1/0。当出现被零除时,MATLAB就返回imf,并不中断执行 而继续计算。 NaN 定义为“Not a Number”,这个非数值要么是%类型,要么是nf/inf

使用r e p m a t创建x: 为使用滤波器,给出下面的命令: 为使用与函数r o u n d一起的过滤器,可输入: 命令r e p m a t产生块矩阵,第 4.1 节将进一步对此进行描述。 在M AT L A B中有许多如下的预定义变量: 命令集6 M AT L A B中预定义变量 a n s 分配最新计算表达式的值,这个表达式并没有给定一个名字。 e p s 返回机器精度,定义 1与最接近可代表的浮点数之间的差。 e p s数 在一些命令中用作偏差。用户可以设定一个新的 e p s值,但要注意 这个e p s值不能由命令c l e a r恢复。 r e a l m a x 返回计算机能处理的最大浮点数。 r e a l m i n 返回计算机能处理的最小的非零浮点数。 p i 返回p,即3 . 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3,如果e p s足够小,那么用1 6位十进 制数来表示其精度。 i n f 定义为1 / 0。当出现被零除时, M AT L A B就返回i n f,并不中断执行 而继续计算。 N a N 定义为“Not a Number”,这个非数值要么是%类型,要么是i n f / i n f。 第2章 M AT L A B启动 1 7 下载 ■

18 China-pub.com MATLAB5手册 下载 i,j 定义为百,虚数单位。可以为和分配其他值,它们将不再是预 定义常数。可以由clear命令恢复。 nargin 给出在一个函数调用中输入自变量的个数,可参见第12.3节。 nargout 给出在一个函数调用中输出自变量的个数,可参见第12.3节。 为寻找哪个变量可以被定义,可以使用下列命令集: 命令集7 变量列表 who 列出已定义的变量。 Who global 与who相同,但仅列出全局变量。参见第12.3节。 who a 给出所有以a开头的变量的一个列表。 whos 给出比命令who更详细的列表,如显示矩阵的维数。 whos global 与whos相同,但仅列出全局变量,可参见第12.3节。 exist (namestr) 根据在字符串namestr中的变量的定义,返回不同的值。关于 字符串更多的信息可参见第5章。这里要注意的重要的一点是 变量名应在引号’之间给出。函数返回值的情况是: l)表示namestr是一个变量名: 2)表示namestr是一个M文件名(参见第2.9节): 3)表示namestr是一个MEX文件名(参见第15章): 4)表示namestr是一个编译的SIMULINK函数: S)表示namestr是一个预定义的MATLAB函数名。 inmem 返回一个带字符串的细胞向量,这个字符串包含目前在内存中 的函数、M文件。如果给出两个输出参数,则第二个包含了一 个目前在内存中的MEX文件的列表。 workspace 对由whos得到的信息给出一个图形界面。命令clear被集成在这 个环境中。由help workspace给出的信息,也在UNX下工作。 如果不被用户删除或重命名,每个被定义的变量将在整个过程中保留。要删除变量,系 统会劝告如要处理大矩阵可用命令clear。 命令集8 删除变量和合并 clear 删除所有变量并恢复除eps外的所有预定义变量。可参见 命令集111当运行文件时的c1ear。 clear name 仅删除变量name。 clear i name1name2别除变量namel、.name2、… … clear a 别除所有a开头的变量。 clear value 根据ahe给出不同的结果。键人d缸 可得到更多的细节

i,j 定义为 ,虚数单位。可以为 i和j分配其他值,它们将不再是预 定义常数。可以由c l e a r命令恢复。 n a r g i n 给出在一个函数调用中输入自变量的个数,可参见第 1 2 . 3节。 n a r g o u t 给出在一个函数调用中输出自变量的个数,可参见第 1 2 . 3节。 为寻找哪个变量可以被定义,可以使用下列命令集: 命令集7 变量列表 w h o 列出已定义的变量。 Who global 与w h o相同,但仅列出全局变量。参见第 1 2 . 3节。 who a* 给出所有以a开头的变量的一个列表。 w h o s 给出比命令w h o更详细的列表,如显示矩阵的维数。 whos global 与w h o s相同,但仅列出全局变量,可参见第 1 2 . 3节。 e x i s t ( n a m e s t r ) 根据在字符串 n a m e s t r中的变量的定义,返回不同的值。关于 字符串更多的信息可参见第 5章。这里要注意的重要的一点是 变量名应在引号‘’之间给出。函数返回值的情况是: 1) 表示n a m e s t r是一个变量名; 2) 表示n a m e s t r是一个M文件名(参见第2.9 节); 3) 表示n a m e s t r是一个M E X文件名(参见第1 5章); 4) 表示n a m e s t r是一个编译的S I M U L I N K函数; 5) 表示n a m e s t r是一个预定义的M AT L A B函数名。 i n m e m 返回一个带字符串的细胞向量,这个字符串包含目前在内存中 的函数、M文件。如果给出两个输出参数,则第二个包含了一 个目前在内存中的M E X文件的列表。 w o r k s p a c e 对由w h o s得到的信息给出一个图形界面。命令c l e a r被集成在这 个环境中。由help workspace 给出的信息,也在U N I X下工作。 如果不被用户删除或重命名,每个被定义的变量将在整个过程中保留。要删除变量,系 统会劝告如要处理大矩阵可用命令 c l e a r。 命令集8 删除变量和合并 c l e a r 删除所有变量并恢复除 e p s外的所有预定义变量。可参见 命令集111当运行文件时的c l e a r。 clear name 仅删除变量n a m e。 clear name1 name2 删除变量n a m e1、n a m e2、… … clear a* 删除所有a开头的变量。 clear value 根据v a l u e给出不同的结果。键入help clear 可得到更多的细节。 -1 1 8 M ATLAB 5 手册 下载

China-pub.com 第2章MATLAB启动 下载 pack 重组和压缩已分配的内存碎块。当MATLAB的内存满后,可以使用 命Pack而不是清除任何变量来得到更多的空间。将会产生如下情况: ·所有变量都会保存在磁盘上的一个临时文件pack.tmp中: ·删除主内存中的内容: ·所有变量将从pack.tmp加载到主内存中: ·删除文件pack.tmp。 pack filename用文件filename作临时文件,重组和压缩已分配内存。 键入中i位 、中y 和a政 可以获得更多的有关如何AAB节省内存的信息。 注意MATLAB中的命令实际上可以看作函数,把字符串看作自变量,这就意味着有 两种描述: command argument command('argument') 这两种描述是等价的。例如,clear name与clear('name')得到相同的结果,who g1oba1与who(‘g1oba1')等价。其他的例题可在本书的其他几个地方找到,例如axis spuare与axis(square')在第13.3节中可找到。由于命令自变量可以通过使用字符串控制 命令而产生,使用函数/字符串公式的可能性使得MATLAB编程语言十分灵活,参见第5章。 2.4算术表达式和数学函数 在MATLAB中通常的惯例是书写数字。对十进制数,使用科学记数法可以书写十分大和 十分小的数。例如3.14和1.23E一6,这里,后者代表1.23×10-6。 MATLAB有算术运算符的扩展集,它们是: 1)A 幂 2)* 乘 右除(正常除) 左除 3)+ 加 减 这是按序给出的运算,1是最高优先级。在带相同优先级的运算符表达式中,按从左到右 的顺序执行。圆括号O能够用于改变优先级次序。 在第3.3节中,将看到两种不同的除法是有用的。对于数量右除2/5得0.4与左除512是相同 的,斜线号“靠着”的表达式或数字是分母。 ■例2.7 如果书写a/b+c,MATLABi读作号+c,但表达式a/(b+c)被读作b十。· b+C。 如果使用左除a\(b+c),MATLAB把它译成 a ■ MATLAB包含了预定义数学函数,它们可以用于算术表达式中。如果自变量是复数,那么

p a c k 重组和压缩已分配的内存碎块。当M AT L A B的内存满后,可以使用 命令p a c k而不是清除任何变量来得到更多的空间。将会产生如下情况: • 所有变量都会保存在磁盘上的一个临时文件 p a c k . t m p中; • 删除主内存中的内容; • 所有变量将从p a c k . t m p加载到主内存中; • 删除文件p a c k . t m p。 pack filename 用文件f i l e n a m e作临时文件,重组和压缩已分配内存。 键入help clear 、help memory 和help pack 可以获得更多的有关如何在M AT L A B节省内存的信息。 注意 M AT L A B中的命令实际上可以看作函数,把字符串看作自变量,这就意味着有 两种描述: 这两种描述是等价的。例如, clear name与c l e a r (’n a m e’)得到相同的结果,w h o g l o b a l与w h o (‘g l o b a l’)等价。其他的例题可在本书的其他几个地方找到,例如 a x i s s p u a r e与a x i s (‘s q u a r e’)在第1 3 . 3节中可找到。由于命令自变量可以通过使用字符串控制 命令而产生,使用函数/字符串公式的可能性使得M AT L A B编程语言十分灵活,参见第 5章。 2.4 算术表达式和数学函数 在M AT L A B中通常的惯例是书写数字。对十进制数,使用科学记数法可以书写十分大和 十分小的数。例如3 . 1 4和1 . 2 3 E-6,这里,后者代表1 . 2 3×1 0-6。 M AT L A B有算术运算符的扩展集,它们是: 1) ^ 幂 2) * 乘 / 右除(正常除) \ 左除 3) + 加 - 减 这是按序给出的运算, 1是最高优先级。在带相同优先级的运算符表达式中,按从左到右 的顺序执行。圆括号( )能够用于改变优先级次序。 在第3 . 3节中,将看到两种不同的除法是有用的。对于数量右除 2 / 5得0 . 4与左除5 \ 2是相同 的,斜线号“靠着”的表达式或数字是分母。 ■ 例2 . 7 如果书写a / b + c,M AT L A B读作 ,但表达式a / ( b + c )被读作 。 如果使用左除a \ ( b + c ),M AT L A B把它译成 。 M AT L A B包含了预定义数学函数,它们可以用于算术表达式中。如果自变量是复数,那么, b + c a a b + c a b + c 第2章 M AT L A B启动 1 9 下载 ■

20 China-pub.com MATLAB5手册 下载 多数情况下是答案。 MATLAB也能计算含有预定义变量的表达式:例如,一个表达式可以用作一个函数的自变量。 预定义数学函数在命令集9中列出。即使这些函数是为数量自变量描述的,将在第3.6节看 到它们既能处理向量,也能处理矩阵。要注意的是所有三角函数都需要其自变量以弧度表示。 命令集9 数学函数 abs(x) 求x的绝对值,即x sign(x) 求x的符号,如果是正的得1:负的得一1:零得0。 sqrt(x) 求x的平方根,即F。 pow2 (x, f) 求x×2'。把f加到的浮点格式下的指数上计算是一种十分有效的运算。 exp(x) 求x的指数函数,即e。 log(x) 求x的自然对数,即lnr。 1og10(x) 求x以10为底的对数,即1ogox。 1og2(×) 求x以2为底的对数,即1logx。 sin(x) 求正弦x,x为弧度。 cos(x) 求余弦x,x为弧度。 tan(x) 求正切x,x为弧度。 cot(x) 求余切x,即1/(tanx),x为弧度。 asin(x) 求反正弦,即sinx。 acos(x) 求反余弦,即cos-x。 atan(x) 求反正切,即tan~x。 atan2(x,y) 求四象限反正切(xy),其结果在[一π,区间内。 acot(x) 求反余切x=四象限反正切(1x)。 sec(x) 求正割x,即1/(cosx)。 csc(x) 求余割x,即1/(sinx)。 asec(x) 求sec-x=arccos(l/x). acsc(x) csc-'x=arcsin(1/x) sinh(x) 求双曲正弦x。 cosh(x) 求双曲余弦x。 tanh(x) 求双曲正切x coth(x) 求双曲余切x,即l/(tanhx)。 asinh (x) 求sinh-x=ln(x++)。 acosh(x) 求cosh-=ln(x+-x)。 atanh(x) 求tanh-x=0.5ln(1+x)/1-x)。 acoth(x) 求coth-'x=0.5ln(x+1)/(x-1)。 sech(x) 求双曲正割x,即1/(coshx)。 csch(x) 求双曲余割x,即1/(sinhx)。 asech(x) 求sech-hx=ln(I+-x)/x)。 acsch(x) 求csch-x=ln(I+1+xyx)

多数情况下是答案。 M AT L A B也能计算含有预定义变量的表达式:例如,一个表达式可以用作一个函数的自变量。 预定义数学函数在命令集9中列出。即使这些函数是为数量自变量描述的,将在第 3 . 6节看 到它们既能处理向量,也能处理矩阵。要注意的是所有三角函数都需要其自变量以弧度表示。 命令集9 数学函数 a b s ( x ) 求x的绝对值,即 |x|。 s i g n ( x ) 求x的符号,如果是正的得1;负的得-1;零得0。 s q r t ( x ) 求x的平方根,即 。 pow2(x, f) 求x×2 f。把 f 加到x的浮点格式下的指数上计算是一种十分有效的运算。 e x p ( x ) 求x的指数函数,即e x。 l o g ( x ) 求x的自然对数,即l nx。 l o g 1 0 ( x ) 求x以1 0为底的对数,即l o g1 0x。 l o g 2 ( x ) 求x以2为底的对数,即l o g2x。 s i n ( x ) 求正弦x,x为弧度。 c o s ( x ) 求余弦x,x为弧度。 t a n ( x ) 求正切x,x为弧度。 c o t ( x ) 求余切x,即1 / ( t a nx),x为弧度。 a s i n ( x ) 求反正弦,即s i n-1 x。 a c o s ( x ) 求反余弦,即c o s-1 x。 a t a n ( x ) 求反正切,即t a n-1 x。 a t a n 2 ( x , y ) 求四象限反正切(x/y),其结果在[- , ]区间内。 a c o t ( x ) 求反余切x=四象限反正切( 1 /x)。 s e c ( x ) 求正割x,即1 / ( c o sx)。 c s c ( x ) 求余割x,即1 / ( s i nx)。 a s e c ( x ) 求s e c-1 x= a r c c o s ( 1 /x)。 a c s c ( x ) 求c s c-1 x= a r c s i n ( 1 /x)。 s i n h ( x ) 求双曲正弦x。 c o s h ( x ) 求双曲余弦x。 t a n h ( x ) 求双曲正切x c o t h ( x ) 求双曲余切x,即1 / ( t a n hx)。 a s i n h ( x ) 求s i n h-1 x= l n 。 a c o s h ( x ) 求c o s h-1 x= ln 。 a t a n h ( x ) 求t a n h-1 x= 0 . 5 l n ( ( 1 +x) / ( 1-x) )。 a c o t h ( x ) 求c o t h-1 x= 0 . 5 l n ( (x+ 1 ) / (x-1 ) )。 s e c h ( x ) 求双曲正割x,即1 / ( c o s hx)。 c s c h ( x ) 求双曲余割x,即1 / ( s i n hx)。 a s e c h ( x ) 求s e c h-1 x= l n 。 a c s c h ( x ) 求c s c h-1 x= l n ((1+ 1 + x 2 )/ x) 。 ((1+ 1 - x 2 ) / x) (x + 1 - x 2 ) (x + 1 + x 2 ) x 2 0 M ATLAB 5 手册 下载

共26页,试读已结束,阅读完整版请下载
刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档