第2章矩阵与MATLAB

上传人:cl****1 文档编号:547864741 上传时间:2023-10-17 格式:DOCX 页数:22 大小:214.60KB
返回 下载 相关 举报
第2章矩阵与MATLAB_第1页
第1页 / 共22页
第2章矩阵与MATLAB_第2页
第2页 / 共22页
第2章矩阵与MATLAB_第3页
第3页 / 共22页
第2章矩阵与MATLAB_第4页
第4页 / 共22页
第2章矩阵与MATLAB_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《第2章矩阵与MATLAB》由会员分享,可在线阅读,更多相关《第2章矩阵与MATLAB(22页珍藏版)》请在金锄头文库上搜索。

1、页眉内容1第2章矩阵与MATLAB2.1 概述MATLA%一门语言,它的运算指令和语法基于一系列基本的矩阵运算以及它们的扩展运算。2.2 矩阵和向量矩阵a的大小可用如下命令获得:size(a)size可显示出两个值:第一个值为行数(m),第二个值为列数(n)。m,n=size(a)-m,n表示矩阵的行赋给m,列数赋给n。2.2.1 方阵当m=n时,a称为方阵。2.2.2 对角阵0(n n)ann当aj=0,iwj,且m=n时,得对角阵:a1100a22a0如果a=138,那么,a=138;z=diag(a)产生如下对角阵:z=100030008如果b是一个方阵,那么,diag(b)返回b的对角

2、阵元素。单位矩阵I的MATLAB!达式为:eye(n)其中n是方阵的大小。c=eye(3)产生:c=1 000100012.2.3 列矩阵和行矩阵(向量)当aj=ai(即只有1列时),a称为列矩阵(列向量),记做:aiia2i aa22 (m i)anian当aj=aij时,即矩阵只有1行,则矩阵称为行矩阵或行向量,记做:a=a11a12ain=aia2an在MATLAB,这是向量的默认定义。2.2.4 矩阵和向量的转置矩阵和向量的转置用(/)表示。向量a的长度,即元素的个数:L=length(a)或L=size(a)矩阵的大小只能用命令size获得。使用size的好处是不需要事先知道a是向量

3、还是矩阵。但对于向量来说,length命令更方便。2.3向量的创建在MATLA呻给出了几种方法用来对向量和矩阵中的元素进行赋值。第一种方法是使用冒号来指定数值范围和相邻值的步长;第二种方法是指定数值的范围和期望的数值个数。在第一种方法中,步长最为重要。在第二种方法中,数值的个数最为重要。第一种方法:x=s:d:f其中,$=初值,d=量或减量值,f=结束值或终值。可产生如下的行向量x:x=s+d,s+2d,s+nd其中,s+nd=f0当d省略时,MATLA蹴认d=1。即:x=s:f产生向量:x=s+i,s+2,s+n第二种方法:(指定n为从s到f的等间隔值)s=linspace(s,f,n)其中

4、,增量或减量值d由MATLAB!过下式计算得出:如果没有指定n的值,MATLABW默认n=100。如果需要用对数等间隔,则:x=logspace(s:f:n)产生向量:x=10s,10s+d,10s+2d,.10f如果没有指定n的值,MATLABW默认n=50。例1:若想创建-2,1,3,5,7,9,10的向量xx=-2,1:2:9,10或x=-2,1,3,5,7,9,10若z=x-1-z=-3,0,2,4,6,8,9z=x;z(2)=z(2)/2;(括号里2代表某列的值)-z=-2,0.5,3,579,10z=x;z(2)=z(2)/2;z(3:4)=z(3:4)*3-1;(第三个和第四个数

5、乘三减一)-z=-2,0.5,8,14,7,9,10例2:如果,y=-1,6,15,-7,31,2,-4,-5x=y(3:5)-x=15,-7,31x=y(1),y(2),y(7),y(8)或x=y(1,2,7,8)或index=1,2,7,8;x=y(index)-x=-1,6,-4,-5例3:如果y=-1,6,15,-7,31,2,-4,-5;z=10,20,30,40,50,60,70,80用sort函数把向量y按升序排列,然后根据向量y中的新元素顺序重新排列向量z。函数sort的调用格式为:ynew,index=sort(y)其中,ynew是重新排列后前向量;index是一个由元素位置

6、所构成的向量,它表示排列后向量y中元素的原始位置号。y=-1,6,15,-7,31,2,-4,-5;z=10,20,30,40,50,60,70,80;ynew,index=sort(y),znew=z(index)执行结果为:ynew-7-5-4-1261531index-48716235znew4080701060203050可以通过find命令来扩展这种功能。find命令可找到满足用户指定条件或表达式的向量(或矩阵)的元素的位置(不是元素值)。例4:使用find命令在y中选出非正元素,组成一个新的向量s。y=-1,6,15,-7,31,2,-4,-5;index=find(y=0);s=

7、y(index)s-1-7-4-5MATLAB隐含向量和矩阵说明的一个最大好处就是可帮助用户实现对于一组织的一系列操作。例5:确定sin(x)的值,其中x在-冗&x0九的区间内以冗/5的步长变化。x=-pi:pi/5:pi;y=sin(x)y-0.0000-0.5878-0.9511-0.9511-0.58780.00000.58780.95110.58780.00002.4矩阵的创建矩阵可以通过以下几种方法创建。(下列矩阵是什么形式的复制不了?)第一种方法:页眉内容v1a11a12a13v2a21a22a23v3a31a32a33v4a41a42a43av1;v2;v3第二种方法:(直接创建

8、)aa11a12a13;a21a22a23;a31a32a33;a41a42a43第三种方法:(更为形象)a=aiia12a13;a21a22a23;a31a32a33;a41a42a43第四种方法:(右表的下标是怎么写上的?)a=a11a12a13a21a22a23a31a32a33a41a42a43两个非常有用的函数可以生成矩阵的元素。1、创建一个元素为1的(rc)阶矩阵:one=ones(r,c)2、创建一个元素为0的(rc)阶矩阵:zero=zeros(r,c)例6:试创建如下矩阵(不会)357911a20.020.2520.520.7521.0-(35)11111a=3:2:11;l

9、inspace(20,21,5);ones(1,5)a(1,1)-3,a(3,4)-1,a(:,2)-520.251/a(2,:)-2020.2520.520.7521a(1:3,3:5)-7911;20.520.7521;111例7:创建一个大小与矩阵a相同且元素都等于4的矩阵:a=3:2:11;linspace(20,21,5);ones(1,5);z=4*ones(size(a)下面介绍一个特殊函数:magic(n)魔方矩阵,矩阵中任意行或任意列中元素之和,以及两条对角线上的元素之和都相等。例8:z=magic(4)结果显示:16231351110897612414151例9:z=mag

10、ic(4);z(2,:)=z(2,:)/2;z(:,4)=z(:,4)+z(:,2)例10:z=magic(4);z=z-diag(diag(z)%将矩阵z的对角线元素置为0例11:z=magic(4);z=z-diag(diag(z)+5*eye(4)%将矩阵z的对角线元素置为5例12:z=magic(4);z=z-diag(diag(z)+diag(11235461)将矩阵z的对角线元素分别置为11、23、54、61。matlaBI供了两个创建矩阵的函数,它们是通过复制标量、列向量、行向量和块矩阵来创建矩阵的。1、函数repmat:调用格式为:s=repmat(x,r,c)其中,x可以是标

11、量、向量或矩阵;r是x的行数;c是x的列数。函数repmat可创建任意长度的列向量和行向量,而且每一个元素都具有相同的值。例13:w=repmat(45.72,1,6).w=45.72,45.72,45.72,45.72,45.72,45.72或w(1,1:6)=45.72(?再看看怎么回事)w=repmat(45.72,3,3)或w(1:3,1:3)=45.72(?再看看怎么回事)例14:考虑向量s1234v=repmat(s,3,1)v=repmat(s,3,2)v=repmat(s,1,3)v=repmat(s,2,3)(转置矩阵怎么写?)2、函数meshgrid:调用格式为:u,v=m

12、eshgrid(s,t)其中,s、t为两个行向量,u、v为调用meshgrid后生成的新矩阵。例15:s=1,2,3,4,t=5,6,7u,v=meshgrid(s,t)5555v 666677771234u12341234而w=meshgrid(s,t)仅返回一个矩阵,如:w=meshgrid(s,t)-w=uMATLABE提供了两个夕!阵操作函数fliplr(a)和flipud(a)。它们可实现对矩阵行和列的旋转操作。例16:考虑矩阵(fliplr(a)表示行不变,但是列左右变)(flipud(a)表示每行的左右顺序不变,但是行之间上下颠倒)a=1,2,3,4,56,7,8,9,10fli

13、plr(a)=5,4,3,2,110,9,8,7,6flipud(a)=6,7,8,9,101,2,3,4,5flipud(fliplr(a)=10,9,8,7,65,4,3,2,1c=a,fliplr(a)=1,2,3,4,5,5,4,3,2,16,7,8,9,10,10,9,8,7,6如果想去掉其中一行,可以通过表达式使其中一行为空,其中方括号中没有空格用表达式:c(length(a),:尸口-1,2,3,4,5,4,3,2,16,7,8,9,10,9,8,7,6下面通过MATLA歹种不同操作的结果来进一步说明上述用法。例17:首先创建两个(25)阶矩阵a和b。a=1,2,3,4,56,7

14、,8,9,10b=11,12,13,14,1516,17,18,19,20考虑它们在三种MATLA映作中的用法:相加:c=a+bc=1+11,2+12,3+13,4+14,5+156+16,7+17,8+18,9+19,10+20-(25)列扩展:c=a,bc=1,2,3,4,5,11,12,13,14,156,7,8,9,10,16,17,18,19,20(210)行扩展:c=a;bc=1,2,3,4,56,7,8,9,1011,12,13,14,1516,17,18,19,20(45)更进一步,如果x=1,2,3y=4,5,6那么,z=x,y或z=x;yfz=1,42, 53, 6(23)z=x/;y/-1,2,3,4,5,6(61)2.5 点运算点的运算也就是单个元素之间的运算。为了与矩阵作为整体的运算符号相区别,要在运算符“*”、“/”、“”、“A”前加一个“.”,以表示进行点运算。矩阵的加减法本来就是对元素进行的,故不再有点的运算符。参

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 市场营销

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号