MATLAB程序设计电子教案第2课11

上传人:kfc****89 文档编号:243364308 上传时间:2024-09-21 格式:PPT 页数:60 大小:1.02MB
返回 下载 相关 举报
MATLAB程序设计电子教案第2课11_第1页
第1页 / 共60页
MATLAB程序设计电子教案第2课11_第2页
第2页 / 共60页
MATLAB程序设计电子教案第2课11_第3页
第3页 / 共60页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第2章 MATLAB 运算基础(1),单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,MALAB 7.X程序设计,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,MALAB 7.X程序设计,*,MATLAB程序设计电子教案-第2课(1),MATLAB程序设计电子教案-第2课(1)MATLAB程序设计电子教案-第2课(1)主要内容:,变量的定义及赋值;,数值数组、字符串数组、元胞数组和构架数组等数据类型;,矩阵运算的定义和规则;,主要内容:,变量的定义及赋值;,数值数组、字符串数组、元胞数组和构架数组等数据类型;,矩阵运算的定义和规则;,数组运算的定义和规则。,2,1),矩阵:,由,mn,个数组成的排成,m,行,n,列的一个矩形的数表,其中,00,矩阵为空矩阵,(),。数表中第,i(1,i,m),行第,j(1,j,n),列的数据称为矩阵元素,2),标量 :,11的矩阵,即为只含一个数的矩阵。,3),向量:,1n或n1的矩阵,即只有一行的或者一列的矩阵。只有一行的矩阵称为行向量,只有一列的矩阵称为列向量。,数表中第i(1in,),个数据称为,向量,元素,。,4),数组:,矩阵的延伸,一般指多维数组,其中标量、向量和矩阵都是数组的特例。,2.1 概述,2.1.1 数据术语,3,2.1.2 数据类型,数据类型包括,数值型、字符串型、元胞型、构架型,等。数值型有单精度型、双精度型和整数型。整数型有uint8,uint16,uint32和uint64等无符号型和int8,int16,int32和int64等符号型整数。,数值型数据可以用带小数点的形式和科学计数法表示,数值的表示范围是,1,0-309,10,+309,。,-20,、,2.88e-56(,表示,10,-56,),、,7.68e204(,表示,10,204,),都是合法的数据表示。,。,一般在计算时,采用双精度型,在输出时有多种数值显示格式可供选择。,4,数值显示格式的设置通过,format,命令, 格式如下:,format short,默认设置,以5位数字形式输出,format long,以15位十进制数形式输出,format short e,以5位十进制数加指数形式输出,format long e,以16位十进制数加指数形式输出,format short g,从format short和format short e,中自动选择最佳输出形式,5,format long g,从format long和format long e,中自动选择最佳输出形式,format hex,以16位十六进制数形式输出,format +,以正号、负号和零形式输出,format bank,以两位小数形式输出,format rat,以近似分数形式输出,format loose,以稀疏格式(变量与执行结果之,间有空行)输出,format compact,以紧凑格式(变量与执行结果之,间无空行)输出,6,2.2 变量,变量的命名规则为:,1 变量名必须以字母开头,变量名的组成可以是任意字母、数字或者下划线,但不能含有空格和标点符号。,2 关键字和函数名不能作为变量名。,3 变量名不能超过63个字符。,4 变量名区分字母的大小写,即大小写敏感。,大小写是否区分可以通过命令casesen on/off进行切换(如果不区分大小写,为casesen off ,否则为casesen on)。,7,变量的赋值通常有,两种形式,:,1 变量=表达式,2 表达式,其中表达式是用运算符将有关运算量连接起来的式子,其结果是一个数组。,形式1中,,=,代表的是赋值操作,将表达式的值赋给MATLAB的变量;形式2中,将表达式的值赋给MATLAB的临时变量ans。,8,例2-1,在命令窗口输入下述语句,并按回车键执行,分别给变量a、b、c赋值:,a=1% a,为标量,b=0 1 % b,为行向量,c=1 2;3 4;5 6 % c,为矩阵即二维数组,9,2.2.3 特殊变量,eps,Realmax,最大的正实数1.7977e+308,Realmin,Pi,内建的值,i, j,虚数单位i=j=-1,Inf,NaN,无法定义一个数目,Nargin,函数输入参数个数,Nargout,函数输出参数个数,Flops,浮点运算次数,10,1 内存变量的显示与删除,1)who,用于显示在MATLAB工作空间中已,经驻留的变量名清单。,2)whos,在给出变量名的同时,还给出它们,的大小、所占字节数及数据类型等,信息。,3)clear,删除MATLAB工作空间中的变量。注,意,特殊变量不能被删除,。,11,例2-2,查询,例2-1中语句执行后,工作空间中 的变量情况。,Name Size Bytes Class,a 1x1 8 double array,b 1x2 16 double array,c 3x2 48 double array,Grand total is 10 elements using 72 bytes,在命令窗口输入,执行结果为:,Your variables are:,a b c,在命令窗口输入,执行结果为:,who,whos,12,2 工作空间浏览器,工作空间浏览器窗口用于,显示所有,MATLAB工作空间中的变量名、数据结构、类型、大小和字节数,也可以对变量进行观察、编辑、提取和保存。,13,3 内存变量文件,利用MAT文件可以把MATLAB工作空间中的一些有用变量长久地保留下来。MAT文件的生成和调入由save和load命令来完成,1) save的格式为:,save 文件名 变量名表 -append-ascii,功能:,把工作空间中的变量存入磁盘。其中变量名表指出需存储的变量,append为数据填加方式,ascii为数据形式。,2) load的格式为:,load 文件名 变量名表 -ascii,功能:,磁盘上存储的mat数据文件取回到MATLAB工作空间中。参数含义同save。,14,例2-3:,例2-1中语句执行后,在命令窗口 依次输入下述命令:,save,%,变量,a,,,b,和,c,保存在,Save mydata1.mat,%,变量,a,,,b,和,c,保存在,save mydata2.mat a,%,变量,a,保存在,save mydata3.mat a b,%,变量,a,和,b,保存在,save mydata4.mat a b c,%,变量,a,,,b,和,c,保存在,15,2.3 数值数组,1 赋值语句建立数组,矩阵的建立可以通过赋值语句实现,赋值符号左边为变量名,右边为矩阵元素。矩阵元素应用方括号()括住,元素可以是数值或表达式元素,表达式可以由数字、变量、运算符和函数等组成。,矩阵同行内的元素间用逗号或空格隔开,行与行之间用分号或回车键隔开。,16,例2-4,在命令窗口输入语句:,a=1,2,3;4,5,6;7,8,9,按回车键,命令就被执行,在MATLAB命令窗中显示以下结果:,a =,1 2 3,4 5 6,7 8 9,如果在上述输入语句末尾加上分号,则在命令窗口不显示结果。,同理可以通过赋值语句建立向量。,17,例,2-5,在命令窗口输入语句:,x=-1.3 1+2+3 sqrt(5),%sqrt,是求平方根函数,按回车键,指令被执行,MATLAB命令窗中显示以下结果:,x =,18,例,2-6,在命令窗口输入下述语句,建立复数数组:,b=1+2*i,2+3*i;2-i,3-2*i,执行结果为:,b =,19,elfun,函数库中提供一系列复数函数:,real,复数的实数部分,real(b),imag,复数的虚数部分,imag(b),abs,绝对值或模,abs(b),angle,幅角,angle(b),结果为弧度,angle(b)*180/pi,结果为角度,conj,共轭,conj(b),20,2 简捷表达式,等间隔向量赋值可以通过简捷表达式实现。下面介绍两种为等间隔向量赋值的方法:,1)两个冒号组成等增量语句,格式:t =初值:增量:终值,说明:,初值、增量和终值,分别表示开始值、步长和结束值。当增量可为负值,省略时则默认为增量为1;当增量省略或增量0而初值0时为空向量,当增量0而初值终值时也为空向量。,21,例2-7,简捷表达式建立向量和矩阵,t1=0:0.02:1,%,产生0t11之间的行向量,,t2=5:-1:2,%,产生5,t12,之间的行向量,,间隔为-1。,t4=2:-1:3,%,建立空矩阵,t5=1:2:5;1:3:7,%,建立矩阵,22,2)使用linspace和logspace函数生成向量,linspace函数的格式:,linspace(a,b,n),功能:,生成从a到b之间线性分布的n个元素的行向量。,logspace (a,b,n),功能:,生成从10,a,到10,b,之间按对数等分的n个元素的行向量。,logspace函数的格式:,23,例 2-8,用linspace和logspace函数生成向量,t1=linspace(0,2*pi,5),%从0到2*pi等分,成5个点,linspace(1,8,8),linspace(1,8,1),t2=logspace(0,2,3),%从1到100(即,10,0,到10,2,)按对数等分成3个点,24,3 内建函数,1) 通用特殊矩阵,函数库,elmat提供的常用的通用特殊矩阵,生成函数,:,zeros,ones,eye,rand,25,2)用于专门学科的特殊矩阵,(1)魔方矩阵,magic(n),功能:,魔方矩阵的元素由1到nn 的自然数组成,其对角线上的元素为1;每行、每列及对角线上的元素之和均等于(n,3,+n)/2。魔方矩阵的每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵,其元素由1,2,3,n,2,共n,2,个整数组成。,26,例2-9,产生2阶和3阶魔方阵。,m1=magic(2),%,产生,2,阶魔方阵,m2=magic(3),%,产生,3,阶魔方阵,27,(2) 范得蒙矩阵,vander(V),生成以向量V为基础向量的范得蒙矩阵,矩阵元素最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以用一个指定向量生成一个范得蒙矩阵。,28,例2-10,产生范得蒙矩阵。,v1=vander(1;2;3;5),v2=,vander(1:3),v3=,vander(1:4),29,(3)希尔伯特矩阵,hilb(n),生成n阶的希尔伯特矩阵,invhilb(n),求n阶的希尔伯特矩阵的逆,例2-11,求4阶希尔伯特矩阵及其逆矩阵。,format rat,%,以有理形式输出,H=,hilb,(4),invH,=,invhilb,(4),30,(4)托普利兹矩阵,功能:,用向量x生成一个对称的托普利兹矩阵。矩阵元素除第一行第一列外,其他每个元素都与左上角的元素相同。,toeplitz,(x,y),功能:,生成一个以,x,为第一列,,y,为第一行的托普利兹矩阵。其中,x, y,均为向量,两者不必等长。,toeplitz,(x),31,例2-12,产生托普利兹矩阵。,T1=toeplitz(1:4),T2=toeplitz(1:3,3:6),32,(5) 伴随矩阵,compan(p),功能:,生成伴随矩阵,其中p是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。,例2-13,为了求多项式的x,3,-7x+6的伴随矩阵,可使用语句:,p=1,0,-7,6;c=compan(p),33,(6) 帕斯卡矩阵,n阶帕斯卡矩阵的生成函数的格式:,pascal(n),例2-14,求(x+y),4,的展开式。,p1=pascal(4),p1 =,1 1 1 1,1 2 3 4,1 3 6 10,1 4 10 20,由执行结果可知,矩阵次对角线上的元素1,4,6,4,1即为展开式的系数。,34,(,7),哈达玛矩阵,n阶哈达玛矩阵的生成函数的格式:,hadamard(n),例2-15,求2阶和4阶的哈达玛矩阵。,h1=hadamard(2),h2=hadamard(4),35,4 通过,MAT数据文件加载矩阵,通过,load命令或选择菜单FileImport Data命令加载MAT数据文件来创建矩阵。,5 在,M文件中创建矩阵,M文件实际上是一种包含MATLAB代码的文本文件;通过在MATLAB命令窗口中运行M文件创建矩阵。,36,1 向量的标识,向量是由多个元素组成的,每个元素通过序号来标识。,例2-16,演示向量的标志和重新赋值。,x=1:2:7; y=x;,y3=y(3),%,引用,y,的第三个元素,5,y5=y(end),%,用,end,函数引用,y,的最后,一个元素,7,y(3)=10,%,对,y,的第三个元素重新赋值,37,2矩阵的标识,两种标识方式:,全下标方式,和,单下标方式,。,1) 全下标方式,全下标方式标识是指出行下标和列下标的方法标识,如一个mn的矩阵a的第i(1im)行第j(1jn)列的元素可表示为a(i,j)。,38,例2-17,演示矩阵元素的标识和扩充矩阵的 方法,a=1 2;3 4;5 6;,%,建立一个,2,3,的矩阵,a12=a(1,2),%引用a(1,2)的值,a(3,3),%引用a(3,3)的值,(3,3),超出矩阵的大小,出错,a(3,3)=9,%扩充23的矩阵为33的,矩阵,并给a(3,3)赋值,39,2) 单下标方式,根据,全下标,换算出单下标的函数sub2ind格式:,IND=sub2ind(siz,I,J),功能:,IND为返回的对应的单下标,siz为以矩阵行数和列数构成的两个元素的向量,I和J分别为矩阵的某一行号和列号。,根据,单下标,换算出全下标的函数ind2sub格式:,I,J=ind2sub(siz,IND),功能:,I和J分别为返回的矩阵的某一行号和列号,siz为以矩阵行数和列数构成的两个元素的向量,IND为单下标。,40,例2-18,演示矩阵元素的全下标标识和单下标标识的转换。,i,j=ind2sub(3 3,5),% 3,3,矩阵的第,5,个元素的全下标,ind=sub2ind(3 3,3,3),% 3,3,矩阵第三行、第三列元素的序号,41,2.3.3 子数组,子数组是从数组中取出一部分元素所构成的数组,通常可用全下标和单下标方式取子数组。,1 向量的一般情况如下:,A(i),数组A的第i个元素,A(i:L:i+m),数组A的第i个-第i+m个(下标增量为L)元素,42,2 矩阵一般情况如下:,A(:,j),数组A的第j列全部元素,A(i,:),数组A的第i行全部元素,A(i,j),数组A的第i行第j列的元素,A(:,j:L:j+n),数组A的第j列-第j+n列(下,标增量为L)全部元素,A(i:k:i+m,:),数组A的第i行-第i+m行(下标,增量为k)元素,A(i:k:i+m,j:L:j+n),数组A的第i行-第i+m,行(下标增量为k)并在第j列,-第j+n列(下标增量为L)全,部元素,43,例2-19,演示建立行向量并取子数组的方法。,a1=1.1,-2.2,3.3,-4.4,5.5;,a1(3),%,取,a1,的第三个元素,a1(1 4),%,取,a1,的第一个和第四个元素,a1(1:2:5),%,取,a1,的第一个、第三个和第五,个元素,等价语句为:,a1(1:2:end),44,例2-20,演示建立34的矩阵,并取子数组的方法,。,a=1 2 3 4;5 6 7 8;9 10 11 12;,a(1,:),a(:,end),a24=a(2,4),%,取,a,的第二行、第四列的元素,a(1:2:4,:),a(:,1:2:end),a1=a(1,2,2,3,4),a2=a(1,2,2,3,1),a3=a(3,1,:),a(1,3,2,4)=zeros(2),%,对,a(1,3,2,4),赋值,45,数组的赋值大致有两种方式:,全元素方式,和,子数组方式,。,1 全元素方式,全元素方式赋值的一般格式:,a(:)=b,功能:,给矩阵a的所有元素赋值,矩阵b的元素总数必须等于矩阵a的元素总数,但行列数不一定相等。,46,例2-21,演示全元素方式赋值的方法,a=zeros(2,3); b=1:6; a(:)=b,执行结果如下:,a =,1 3 5,2 4 6,47,2 子数组方式,子数组方式赋值的一般格式1:,a(s)=b,功能:,给矩阵a的部分元素赋值,s为单下标序号,b为向量,向量的元素个数必须等于数组a中s指定的元素个数。,子数组方式赋值的一般格式2:,A(i:k:i+m,j:L:j+n)=b,功能:,给数组a的部分元素赋值,则数组b的行列数必须等于数组a的第i行-第i+m行(下标增量为k)并在第j列-第j+n列(下标增量为L)全部元素的行列数。,48,例2-22,演示子数组方式赋值方法。,a=zeros(2,3);a(5:6)=2 3,%给第5、6元素赋值,如果对a不作初始化,a(5:6)=2 3的赋值情况有何变化?,a=zeros(3,4);,a(1:2,1:3)=1 1 1;1 1 1,%给第一、二行元素赋值为全1,49,数组元素的删除是简单地通过赋值为空(用表示)实现的。,通过赋值为空,可以实现删除一行元素、一列元素、子数组和整个数组。,注意区分空矩阵和零矩阵:,空矩阵是00的数组,而零矩阵是元素为零的mn的数组。,50,例2-23,建立33的数组,实现数组元素的 删除。,a=1 2 0;3 4 0;5 6 9;,a(:,3)=,%,删除第三列元素,a(2,:)=,%,删除第二行元素,a(1)=,%,删除一个元素,则矩阵变为行向量,a=,%,删除所有元素为空矩阵,51,2.3.6 多维数组,1 三维数组的建立,三维数组的建立方式和二维数组类似,大致有,三种方式:,1) 通过全下标元素赋值方式创建,2) 由生成函数直接创建,3) 由生成函数ones,zeros,rand和randn等直接创建多维数组。,52,例2-24,演示全下标元素赋值方式建立 三维数组的方法。,b=1 1;2 2;,%,先创建二维数组,b(:,:,2)=5,%,扩展数组,53,例2-25,演示生成函数ones、zeros、rand和randn直接创建多维数组的方法。,ones(2,3,4),54,函数cat的格式为:,cat(维,p1,p2,),功能:,按指定行列数放置模块数组生成多维数组。参数维是指沿着第几维连接数组p1、p2等。,函数repmat的格式为:,repmat(p,行 列 页 ),功能:,在总元素的数目不变的前提下重新确定数组的行列数来重组数组。,其中第一个输入变量p是用来放置的模块数组,后面的变量行、列、页是要放在指定的各维。,55,例2-26,演示cat和repmat函数的功能。,a=1 2 ;3 4;b= 5 6;7 8;cat(1 ,a,b),a=1 2 ;3 4;b= 5 6;7 8;cat(2 ,a,b),56,a=1 2 ;3 4;b= 5 6;7 8;cat(3 ,a,b),repmat(magic(2), 2, 3),( repmat(magic(2), 2, 3)结果同下),repmat(5, 2, 3),57,2 多维数组的信息,函数ndims的功能是直接给出数组的维数,,格式为,:,ndims(p),其中,p为数组。,函数,size,的功能是给出数组各维的大小,,格式为,:,m,n,=size(p),%,得出各维的大小,m=size(p,x),%,得出某一维的大小,其中,,p,为多维数组;,m,为行数,,n,为列数;当只有一个输出变量时,,x=1,返回第一维(行数),,x=2,返回第二维(列数),以此类推。,numel,的功能是给出数组的体积(元素的数目),,格式为,:,n =,numel,(,p,),其中,,p,为数组。,58,例2-27,演示,ndims,size和,numel函数的 功能。,x = ones(1,8);n = length(x),%,建立任意的,1,8,的数组,x,y=zeros(3,5);d=size(y),%,建立任意的,3,5,的数组,y,m n=size(y),ndims(y),numel(y),mm=size(y,1),nn=size(y,2),z= rand(2,10,3);,%,建立任意的,2,10,3,的数组,y,n = length(z),59,谢谢!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 中学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!