资源预览内容
第1页 / 共68页
第2页 / 共68页
第3页 / 共68页
第4页 / 共68页
第5页 / 共68页
第6页 / 共68页
第7页 / 共68页
第8页 / 共68页
第9页 / 共68页
第10页 / 共68页
亲,该文档总共68页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第2章 MATLAB矩阵及其运算 2.1 变量和数据操作 2.2 MATLAB矩阵 2.3 MATLAB运算 2.4 矩阵分析 2.5 字符串,2.1 变量和数据操作,2.1.1 变量与赋值 1变量命名 在MATLAB 7.0中,变量名是以字母开头,后接字母、数字或下划线的字符序列,最多63个字符。在MATLAB中,变量名区分字母的大小写。,2赋值语句 (1) 变量=表达式 (2) 表达式 其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。,例2-1 计算表达式的值,并显示计算结果。 在MATLAB命令窗口输入命令: x=1+2i; y=3-sqrt(17); z=(cos(abs(x+y)-sin(78*pi/180)/(x+abs(y) 其中pi和i都是MATLAB预先定义的变量,分别代表代表圆周率和虚数单位。 输出结果是: z = -0.3488 + 0.3286i,2.1.2 预定义变量,在MATLAB工作空间中,还驻留几个由系统本身定义的变量。例如,用pi表示圆周率的近似值,用i,j表示虚数单位。 预定义变量有特定的含义,在使用时,应尽量避免对这些变量重新赋值。,2.1.3 内存变量的管理 1内存变量的删除与修改 MATLAB工作空间窗口专门用于内存变量的管理。在工作空间窗口中可以显示所有内存变量的属性。当选中某些变量后,再单击Delete按钮,就能删除这些变量。当选中某些变量后,再单击Open按钮,将进入变量编辑器。通过变量编辑器可以直接观察变量中的具体元素,也可修改变量中的具体元素。,clear命令用于删除MATLAB工作空间中的变量。who和whos这两个命令用于显示在MATLAB工作空间中已经驻留的变量名清单。who命令只显示出驻留变量的名称,whos在给出变量名的同时,还给出它们的大小、所占字节数及数据类型等信息。,2内存变量文件 利用MAT文件可以把当前MATLAB工作空间中的一些有用变量长久地保留下来,扩展名是.mat。MAT文件的生成和装入由save和load命令来完成。常用格式为: save 文件名 变量名表 -append-ascii load 文件名 变量名表 -ascii,其中,文件名可以带路径,但不需带扩展名.mat,命令隐含一定对.mat文件进行操作。变量名表中的变量个数不限,只要内存或文件中存在即可,变量名之间以空格分隔。当变量名表省略时,保存或装入全部变量。-ascii选项使文件以ASCII格式处理,省略该选项时文件将以二进制格式处理。save命令中的-append选项控制将变量追加到MAT文件中。,2.1.4 MATLAB常用数学函数 MATLAB提供了许多数学函数,函数的自变量规定为矩阵变量,运算法则是将函数逐项作用于矩阵的元素上,因而运算的结果是一个与自变量同维数的矩阵。,常用数学函数,abs(x):纯量的绝对值或向量的长度 sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 angle(z):复数z的相角 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 (向零方向取整) floor(x):地板函数,不大于自变量最大整数 ceil(x):天花板函数,不小于自变量的最小整数. rat(x):将实数x化为多项分数展开 rats(x):将实数x化为分数表示,MATLAB常用的基本数学函数,sign(x):符号函数 (Signum function)。 当x0时,sign(x)=1。 rem(x,y):求x除以y的馀数 gcd(x,y):整数x和y的最大公因数 lcm(x,y):整数x和y的最小公倍数 exp(x):自然指数 pow2(x):2的指数 log(x):以e为底的对数,即自然对数 log2(x):以2为底的对数 log10(x):以10为底的对数,函数使用说明: (1) 三角函数以弧度为单位计算。 (2) abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值。 (3) 用于取整的函数有fix、floor、ceil、round,要注意它们的区别。 (4)rem(x,y) 要求x,y必须为相同大小的实矩阵或为标量。,实战1:函数 abs 功能 数值的绝对值与复数的幅值 格式 Y = abs(X) %返回参量X的每一个分量的绝对值; %若X为复数的,则返回每一分量的幅值 % abs(X) = sqrt(real(X).2+imag(X).2) 例 x= -18; z1 = abs(x) y= -2+ 4i; z2 = abs(y),实战2:函数 sqrt 功能 求平方根函数 格式 Y = sqrt(X) % 数值的平方根运算 例 x= 16; z1 = sqrt(x) y= -18; z2 = sqrt(y) f= 2+ 4i; z3 = sqrt(f),实战3:函数 exp 功能 以e为底数的指数函数 格式 Y = exp(X) % 对参量X的每一分量,求以e为底数的指数函数Y。 % X中的分量可以为复数。 % 对于复数分量如,z = x +i*y, % 则相应地计算:ez = ex*(cos(y) + i*sin(y)。 例 x= 3; z1 = exp(x) y= -3; z1 = exp(y) f= 2+ 4i; z3 = exp(f),实战4:函数 log 功能 自然对数,即以e为底数的对数。 格式 Y = log(X) % 对参量X中的每一个元素计算自然对数。 % 其中X中的元素可以是复数与负数,但由此可能得到意想不到的结果。 % 若z = x + i*y,则log对复数的计算如下: % log (z) = log (abs (z) + i*atan2(y,x) 例: x= 20.0855 z1 = log(x) f= 2+ 4i; z3 = log(f) 下面的语句可以得到无理数的近似值: pai = abs(log(-1),实战5:函数 log10 功能 常用对数,即以10为底数的对数。 格式 Y = log10(X) %计算X中的每一个元素的常用对数, % 若X中出现复数,则可能得到意想不到的结果。 例 x= 10; z1 = log10(x) y= -10; z1 = log10(y) f= 2+ 4i; z3 = log10(f),实战6:函数 lcm 功能 整数x和y的最小公倍数 格式 z = lcm(x,y) %计算整数x和y的最小公倍数 例 x= 10; y=23; z1 = lcm(x,y) x= 10; y=2; z2 = lcm(x,y) x= 10; y=-2; /? z3 = lcm(x,y),实战7:函数 gcd 功能 整数x和y的最大公约数 格式 z = gcd(x,y) %计算整数x和y的最大公约数 例 x= 10; y=23; z1 = gcd(x,y) x= 10; y=2; z2 = gcd(x,y) x= 10; y=-2; z3 = gcd(x,y),实战8:函数 real 功能 复数的实数部分。 格式 Y = real(Z) %返回输入参量Z的每一个分量的实数部分。 例 f = 3+8i; z=real(f),计算下式:其中x=-3.5,Y=6.7 x=pi/180*(-3.5);y=pi/180*6.7; z=sin(abs(x)+abs(y)/sqrt(cos(abs(x+y),【例】求 的算术运算结果。(ans=2),【例】 求 的算术运算结果。(-0.0045 ),【例】复数 ,求,(0.3349 + 5.5801i),【例】 求 的算术运算结果。( 0.3633),2.1.5 数据的输出格式 MATLAB用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示方法。 在一般情况下,MATLAB内部每一个数据元素都是用双精度数来表示和存储的。数据输出时用户可以用format命令设置或改变数据输出格式。format命令的格式为: format 格式符 其中格式符决定数据的输出格式 Format long ; long e; long g Format short; short e; short g,2.2 MATLAB矩阵,2.2.1 矩阵的建立 1直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素。具体方法如下:将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。,2利用M文件建立矩阵 对于比较大且比较复杂的矩阵,可以为它专门建立一个M文件。下面通过一个简单例子来说明如何利用M文件创建矩阵。,例2-2 利用M文件建立MYMAT矩阵。 (1) 启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵: (2) 把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。 (3) 在MATLAB命令窗口中输入mymatrix,即运行该M文件,就会自动建立一个名为MYMAT的矩阵,可供以后使用。,3利用冒号表达式建立一个向量 冒号表达式可以产生一个行向量,一般格式是: e1:e2:e3 其中e1为初始值,e2为步长,e3为终止值。 在MATLAB中,还可以用linspace函数产生行向量。其调用格式为: linspace(a,b,n) 其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 显然,linspace(a,b,n)与a:(b-a)/(n-1):b等价。 4建立大矩阵 大矩阵可由方括号中的小矩阵或向量建立起来。,2.2.2 矩阵的拆分 1矩阵元素 通过下标引用矩阵的元素,例如 A(3,2)=200 采用矩阵元素的序号来引用矩阵元素。矩阵元素的序号就是相应元素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。例如 A=1,2,3;4,5,6; A(3) ans = 2 显然,序号(Index)与下标(Subscript )是一一对应的,以mn矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得。 ind2sub(size(A), 2); sub2ind(size(A), 2, 3),2矩阵拆分 (1) 利用冒号表达式获得子矩阵 A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。 A(i:i+m,:)表示取A矩阵第ii+m行的全部元素;A(:,k:k+m)表示取A矩阵第kk+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第ii+m行内,并在第kk+m列中的所有元素。 此外,还可利用一般向量和end运算符来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下标。,(2) 利用空矩阵删除矩阵的元素 在MATLAB中,定义 为空矩阵。给变量X赋空矩阵的语句为X= 。注意,X= 与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。,2.2.3 特殊矩阵 1通用的特殊矩阵 常用的产生通用特殊矩阵的函数有: zeros:产生全0矩阵(零矩阵)。 ones:产生全1矩阵(幺矩阵)。 eye:产生单位矩阵。 rand:产生01间均匀分布的随机矩阵。 randn:产生均值为0,方差为1的标准正态分布随机矩阵。,例2-3 分别建立33、32和与矩阵A同样大小的零矩阵。 (1) 建立一个33零矩阵。 zeros(3) (2) 建立一个3
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号