ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:50.76KB ,
资源ID:11264682      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-11264682.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第2章 数组和矩阵.docx)为本站会员(b****3)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

第2章 数组和矩阵.docx

1、第2章 数组和矩阵第二章 数组和矩阵向量(矩阵)和数组是有区别的向量(矩阵)是一个数学概念,数组是一个计算机名词,一组数而已。非要给数组赋予数学含义,则一维数组相当于向量,二维数组相当于矩阵,向量或矩阵是数组的子集。向量(矩阵)的四则运算有具体的数学定义,使用通常的四则运算符号。数组运算特指数组对应元素之间的运算(也称点运算),其运算符是在通常的运算符符前加一点作为其运算符。二者在加、减与数乘三种运算上恰好一致:数组加减:A+B与A-B;矩阵加减:A+B与A-B,都是对应元素之间加减(不分与.)数乘数组:k.*A或A.*k;数乘矩阵:k*A或A*k,都是k乘A的每个元素但注意以下两点:(1)向

2、量(矩阵)的乘法、乘方和除法等运算按线性变换定义,与数组对应的运算不一样。(2)数与矩阵加减、矩阵除法在数学没有定义,MATLAB中为简便起见定义了这两类运算;数组运算:数与数组加减: k+A与k-A ,k加(减)A的每个元素数组乘数组: A.*B,对应元素相乘数组乘方: A.kA的每个元素k次方, k.A 分别以k底A的元素为指数求幂值数除以数组: k./A和A.k k分别被A的元素除数组除法: 左除A.B右除B./A,对应元素相除矩阵运算:数与矩阵加减:k+A与k-A,等价于k*ones(size(A)+-A %特殊的定义矩阵乘法:A*B,按数学定义的矩阵乘法规则矩阵乘方:Ak,k个矩阵A

3、相乘矩阵除法:左除AB 右除B/A,分别为AX=B和XA=B的解搞清楚这些区别,发现数组的运算其实很简单,值得注意的是,在实际计算中什么时候需要对变量进行数组运算,什么时候需要对变量进行向量(矩阵)运算。比如第一章的积分表达式中的变量x就只能做数组元素。在不考虑数学意义时数组与向量(矩阵)是一回事!以下只讨论向量(矩阵)的运算MATLAB提供的数据类型(如下图),有十余种之多。但所有的MATLAB变量,不管它是什么类型的,都以数组或矩阵的形式保存。矩阵是数组的二维版本。MATLAB的数据类型说明:int8表示一个字节(8bit)2.1 表达式与其他程序语言类似,MATLAB提供了数学表达式功能

4、。但是,与大多数程序语言不同的是,这些表达式主要针对矩阵进行操作。与表达式相关的内容主要包括变量、数值(常数)、运算符和函数等。2.1.1 变量MATLAB变量使用前不需要任何类型声明和维数说明。命名规则同C语言,变量名最长63个字符(7.0版)变量严格区分大小写2.1.2数值表示MATLAB使用传统的数值表示方法。对于比较长的数,使用科学计数法,用字母e指定以10为底的幂次。虚数用i或j作为后缀。所有数值在内部保存为IEEE浮点标准指定的long型格式。其精度为16个小数位,范围大约为10-30810+308。内置常数:pi,i,j,eps,realmax,realmin,inf,NaN2.

5、1.3 运算符表达式采用的算术运算符和优光规则按此顺序:+ (加)、_ (减)、* (乘)、/ (除)、 (左除)、 (幂)、 (复数共轭转置)、()(优先)2.1.4 函数使用help 函数名获得函数帮助22构造数组1、直接构造:用空格或逗号间隔数组元素,然后用方括号括起来:x=1,2,3,4,5,62、增量法构造:使用冒号操作符创建数组。a= first:end。%递增、且步长为1的数组a=first:step:end。%指定增量步长值创建任何等差序列(数组)3、用linspace 函数构造x=linspace(first,last,num) %需要指定首尾值和元素总个数,步长根据 num

6、 平均分配2.3 构造矩阵MAITLAB中,二维数组称为矩阵。图形图像方面要涉及到大量的矩阵运算,比如,一幅数字图像就是个矩阵,矩阵中的每个元素表示图像上每个像素的信息。那么针对图像所作的任何操作实质上都是针对矩阵进行的。2.3.1 简单的创建方法使用矩阵创建符号 ,用逗号或空格隔开各元素间;用分号隔开各行。必须注意各行必须具有相同的元素个数2.3.2 构造特殊矩阵函数功能ones创建一个所有元素都为1的矩阵zeros创建一个所有元素都为0的矩阵eye创建一个对角线元素为1,其他元素为0 的矩阵diag根据向量创建对角矩阵magic创建一个方阵,所有行、列、对角线上的元素的和相等rand创建一

7、个矩阵或数组,其中的元素为服从均匀分布的随机数randn创建一个矩阵或数组,其中的元素为服从正态分布的随机数randpem创建一个向量(1n的矩阵)注:表中的大部分函数返回double型的矩阵。但是,可以用ones,zeros和eye函数生成任何数值类型的基本数组。方法是将数据类型名作为函数的最后一个参数值(class()函数可检测数据类型):A=zeros(4,6);class(A) %class()返回矩阵A数据类型为 doubleA=zeros(4,6,uint32) ;class (A) %显示的数据类型为uint32的矩阵函数示例:A=magic(5) % 5阶魔方阵,每行、列和主对

8、角线上的和相等。A=rand(5)*20 %服从均匀分布的随机数的矩阵或数组,每个元素乘以20A=10,9,8,-7,5;B=diag(A,-1) %以A为对角线的对角矩阵,-1表示元素放在主对角线下方2.3.3 聚合矩阵矩阵聚合是通过连接一个或多个矩阵来形成一个新的矩阵。1、使用符号 聚合:表达式c=A B水平聚合,c=A;B垂向聚合。A=ones(3,5)*6; %35的矩阵,元素为6B=rand(3,5); %35的矩阵,元素为随机数D=A B %横向(列)聚合A和B,要求A,B行数相同C=A;B %垂向(行)聚合A和B,要求A,B列数相同2、使用函数聚合函数描述cat沿指定的维聚合矩阵

9、horzcat水平聚合矩阵vertcat垂向聚合矩阵repmat通过复制与蝶置来创建新矩阵blkdiag用已有矩阵创建块对角矩阵函数示例:(使用cat和vertcat函数可以代替实现矩阵的聚合)A=magic(3);B=-5 -6 -9;-4 -4 -2;1 2 3 ;cat1ab=cat(1,A,B) % 行(垂向)聚合,等价于A;Bcat2ab=cat(2,A,B) % 列(横向)聚合,等价于A Bvab=vertcat(A,B) % 行聚合,等价于A;BM=1 2;3 4;repM=Repmat(M,2,3) %将 M 视为一个元素的mn矩阵。C=eye(2)*8;blkdgabc=bl

10、kdiag(A,B,C) % 以A,B,C为块的对角矩阵2.3.4 聚合不同类型的矩阵聚合矩阵时,若矩阵的数据类型不同,则MATLAB会自动进行类型转换。高精度矩阵和低精度矩阵构造新矩阵时,新矩阵是低精度型的(1)single型和double型矩阵聚合为single型。X=single(4.5) pi 5.73*10300 %这也是聚合,3个11矩阵的聚合。x=ones(2)*2 ones(2,3,single) ;class(x)%两矩阵聚合为single型。(2)character和double型矩阵聚合为character型:x=A B C 68 69 70 %x=ABCDEF;clas

11、s(x)=char(3)logical和double型矩阵聚合为double,比较特殊:x=true false false pi sqrt(7) % x=1.0000 0 0 3.1416 2.6458;class(x)=double2.4 获取矩阵的元素2.4.1获取单个元素A(row,column) %返回矩阵中第row行,第column列元素A(m) %返回矩阵中的第m元素。注:A(m)形式按矩阵的存贮顺序访问。即行优先(行标变化最快)原则,比如一个三阶方阵的存贮顺序是a11,a21,a31,a21,a22,a23,a31,a32,a33。显然A(4)=a21。一般对一个 mn矩阵A(

12、i,j)和A(p)的对应关系为:p=(j-1)* m+i。函数sub2ind()和ind2sub()可以完成单索引p和位置(i,j)间的转换。A=1 2 3 ;4 5 6 ;7 8 9p=sub2ind(size(A),2,3) %size(A)返回矩阵A的行列值,A(2,3)为A(8)。row,col=ind2sub(size(A),8) %返回A(8)的下标(2,3)。2.4.2 获取多个元素仔细体会冒号:,end关键字及first:step:end格式的使用。A=magic(4)S=A(1,4) + A(2,4) + A(3,4) + A(4,4) %求第4列14行元素的和S=sum(A

13、(1:4,4) %同上,求第4列14行元素的和S=sum(A(:,2) %求第2列所有元素的和A(1:3:16)=-10 %每隔两个元素处的值改为-10,注意按存贮顺序访问A(1:3,end)=10 %将矩阵A的13行中最后一个元素的值替换为10。A(:) %按存贮顺序操作A的所有元素,此处为显示。2.5 获取与矩阵有关的信息矩阵信息函数函数功能Length返回矩阵最长维的长度ndims返回矩阵维数numel返回矩阵元素的个数size返回每一维的长度下面这个例子演示上表中部分函数的使用。A=rand(5)*10;A(4:5,:)= %第四行,第五行各列元素全部被删除sum(A(:)/numel

14、(A) %计算矩阵A中所有元素求和后再算均值。% 查找矩阵中大小介于5 和7 之间的所有元素。if ndims(A)=2 % =不等于,如果A的维数不是2 即不是矩阵,就结束程序。 returnendrows,cols=size(A);for m=1:rows %行作为外循环是符合存贮顺序的,是高效率的。 for n=1:cols if A(m,n)=5 & A(m,n) 26重构后矩阵存贮结构不变C= rot90(A) %将矩阵A逆时针旋转90度。D=fliplr(A) %沿Y轴(左右)翻转矩阵E=ctranspose(A) %等价于A注:转置矩阵:有点撇符 . 和撇符 两个转置符号,其中函

15、数ctranspose和 等价。对于实矩阵,二者没有区别,对于复矩阵,点撇符 . 只转置,撇符 转置后再对每元素求共轭。2.7 导入数据2.7.1 使用load命令导入数据使用 load 命令可导入 .txt、.dat类型的文本文件。数据被保存在与文件名同名的矩阵中。注意,必须是矩形文本。使用 load 命令可导入.mat 类型的内存变量文件。命令中可省去扩展名.mat。load filename2.7.2 使用 Ipput wizard 工具菜单:StartMatlabInput wizard 依提示导入MATLAB 能识别的数据。如Excel 文件、图像等。2.8 矩阵的代数运算1、+ :

16、加减运算,对应位置元素相加减2、乘法(数学上叫叉乘)*:叉乘,A(mt)*B(tn)=C(mn) .*:点乘,对应位置元素相乘注:加减运算,点乘运算要求两个矩阵为同型矩阵(两个行数、列数对应相同的矩阵)例:乘法和加法运算A=1 2 3; 4 5 6;B=1 2 3 4;5 6 7 8;8 10 11 12;C=A*BD=A.*AE=A+A3、除法运算由于矩阵乘法不满足交换律(即A*BB*A),通常有以下两个方程a*x =b,此时x=ab(b左除a)x*a=b,此时x=b/a(b右除a,或简称b除a)如果a为非奇异矩阵(行列式不为零的矩阵),则ab和b/a可通过a的逆矩阵与b阵得到:ab = inv(a)*b % inv 求矩阵的逆,左乘a的逆b/a = b*inv(a) %右乘a的逆(另外,y.x 和 y./x运算,两个矩阵对应位置元素作 运算)。4、矩阵和常数的运算:矩阵中的每个元素和这个常数进行通常意义下的算术运算。2.9 矩阵的逻辑运算逻辑运算符操作符说明等价的函数&逻辑与and(x,y)|逻辑或or(x,y)逻辑非not(x)函数中的x与y可以都是矩阵或向量,也可以有一个是标量。要求它们的大小完全相同(即要求是同型矩阵)。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2