第2章matlab数值计算功能课件.ppt
《第2章matlab数值计算功能课件.ppt》由会员分享,可在线阅读,更多相关《第2章matlab数值计算功能课件.ppt(84页珍藏版)》请在三一办公上搜索。
1、2.1 变量及其赋值,2.1.1变量,3. MATLAB严格区分大小写字母,因此,A和a是不同的变量。,MATLAB的内定变量见表2 - 1,像任何其他计算机语言一样,MATLAB 也是使用变量来保存信息的。变量由变量名表示,变量的命名应遵循如下规则:,1变量名必须以字母开头;由字母、数字和下划线混合组成;不允许使用空格、标点符号;,2变量名的字符长度不应超过31个(对于6.x版本);,4关键字(如 if,while 等)不能作为变量名。,eps 容差变量,定义为1.0到最近浮点数的距离,在 pc机上= 2-52 pi 圆周率的近似值3.1415926 inf或Inf 表示正无大,定义为1/0
2、 NaN 非数,它产生于0 ,0/0,/ 等运算 i,j 虚数单位 ans 对于未赋值运算结果,自动赋给ans,永久变量,2.1.2、 MATLAB 的语句,1.百分号(注释符)%,与其它程序语言一样,为了方便其他人及日后自己对程序的阅读,增加程序的可读性,需要在MATLAB文件中加入注释。注释行必须以%号开始,执行文件时,%号后面的语句不予执行。,2.逗号和分号,在赋值语句中,逗号(空格)用在同一行中各元素之间,分号用在行与行之间。多条语句放在一行,用逗号分开表示要求显示结果,由分号分开表示不要求显示结果。,3.续行标志(),当一条语句或矩阵太长,一行显示不下时,可用续行标志,另起一行继续完
3、成该条语句的书写。,2.1.3 矩阵及其元素的赋值,矩阵是 MATLAB 进行数据处理的基本单元,MATLAB 的大部分运算都是在矩阵的意义上进行的,矩阵运算也是 MATLAB 最重要的运算。赋值就是把数赋予代表常量或变量的标识符。 MATLAB中的变量或常量都代表矩阵,标量应看作是11阶的矩阵。,矩阵的创建可以通过以下几种形式:(1)直接列出元素形式;(2)通过语句和函数产生;(3)从外部文件装入;(4)建立在M文件中。,1、直接输入矩阵:,例如输入语句a=1 2 3;4 5 6;7 8 9,a= 1 2 3 4 5 6 7 8 9,对于较小的简单矩阵,从键盘上直接输入矩阵时最常用、最方便和
4、最好的数值矩阵创建方法。创建矩阵的基本原则:矩阵的所有元素必须放在方括号“ ”内;矩阵元素之间必须用逗号“,”或空格隔开;矩阵行与行之间用分号“;”或回车符隔开;矩阵元素可以是数字或任何不含未定义变量的表达式。,矩阵里的元素也可以用表达式代替,例如输入,X=-1.3,sqrt(3),(1+2+3)/5*4,X= -1.3000 1.7321 4.8000,显示结果,矩阵里的元素还可以是复数,复数用内定变量i,j表示,2、由函数创建和修改矩阵:,MATLAB提供用于创建某些特殊矩阵的函数,A= 创建空矩阵,注意空矩阵与零矩阵的差别,eye(n) 单位矩阵, nn阶的方阵,zeros(m,n) 元
5、素全为零的mn阶矩阵,ones(m,n) 元素全为 1 的mn矩阵,rand(m,n) 元素为在0,1上均匀分布的mn随机矩阵,randn(m,n) 元素为标准正态分布的mn随机矩阵,magic(n) 魔方矩阵,其特点是元素由1到n2的自然数组成,每行、每列及两对角线上的元素之和均等于(n3+n)/2,以上命令可以只有一个参数,生成的是方阵,常用创建矩阵函数,3、从外部数据文件调入矩阵:,在MATLAB中,还可以从外部文件读入数据生成矩阵。这些文件可以是存储Matlab已经生成的矩阵二进制文件,也可以是包含数值数据的文本文件。在文本文件中,数据必须排成一个矩阵表,数据之间用用空格分隔,每行包含
6、矩阵的一行。保存文件时,文件名后缀为.dat,例如:有文本文件mydata.txt,将后缀改为.dat,在命令窗口输入:,load mydata.dat %把文件中的内容调入到工作空间中mydata %显示变量mydata,4、利用M文件中的函数生成矩阵,高维矩阵的创建(简单了解),1.通过全下标元素赋值方式, A=zeros(2,2)A = 0 0 0 0 A(2,2,2)=1A(:,:,1) = 0 0 0 0A(:,:,2) = 0 0 0 1, B(2,5,:)=1:3B(:,:,1) = 0 0 0 0 0 0 0 0 0 1B(:,:,2) = 0 0 0 0 0 0 0 0 0
7、2B(:,:,3) = 0 0 0 0 0 0 0 0 0 3,2.由若干个同样大小的低维数组合成, C=ones(2,3); C(:,:,2)=ones(2,3)*2; C(:,:,3)=ones(2,3)*3C(:,:,1) = 1 1 1 1 1 1C(:,:,2) = 2 2 2 2 2 2C(:,:,3) = 3 3 3 3 3 3,3. 由ones、zeros等函数直接创建,同样的方法还可以创建4维等更高维的数组。,2.1.4 向量的生成,在MATLAB中数组可以看成是行向量,即只有一行或一列的矩阵。前面介绍的所有矩阵的建立和保存的方法,对向量同样适用,这里不再重复。同时,介绍ma
8、tlab中创建向量的特殊命令。,1.利用冒号“:”创建等差数列:,t=初值:增量:终值,其中 “增量”是可以省略的,省略时,默认的增量步长为1。增量也可以是负值,但此时,初值应该大于终值。,例如:x=1:5; y=0:pi/4:2*pi; z=6:-1:0;,2.利用函数linspace和logspace创建向量:,linspace 函数,创建指定长度的等距向量,例:k=linspace(-pi,pi,4),t=linspace(初值d1,终值d2,点数n),logspace 函数,创建对数等距的向量,y=logspace(d1,d2) y=logspace(d1,d2,N),意义为:从10的
9、d1次幂到d2次幂之间按等比级数等分为N个点,N缺省时,默认为50。,意义为:在线性空间上,行矢量的值从d1到d2,数据个数n,缺省时n为100。,2.1.5 矩阵的下标,创建了矩阵之后,若要调用矩阵里的元素,就要了解单个元素标志和寻访的3种方式:,1.“全下标”标志,即指出“第几行第几列”的元素。优点是:几何概念清楚,引述简单。 “全下标”标志由行下标和列下标组成,例如:A(3,5)标志矩阵A的第3行第5列元素。,2.“单下标”标志,单下标是只用一个下标来指明元素在数组中的位置。matlab在存储矩阵时,将所有元素按一维进行编号,即把矩阵所有列,按照先左后右的次序排成一维长列,然后按照自上而
10、下对元素位置进行编号。,全下标和单下标的转换:,sub2ind(size(A),m,n) 将矩阵A的第m行第n列的下标转换成单下标;,a,b=ind2sub(size(A),p) 将矩阵A中编号为p的单下标转换成全下标;,3.“逻辑1”标志,在实际运用中,经常会碰到诸如寻找矩阵中所有大于某值的问题。此时“逻辑1”标志就特别得心应手。,X=A(L),其中L是与A维数相同的逻辑值数组,通过L中,逻辑1所在的位置,指示A元素的位置。,在MATLAB的内部数据储存结构中,每一个矩阵都是一个以列为主的向量,因此对于矩阵内各元素的存取是按列来进行总排。,冒号“:”表示“全部”。,例:,思考:A(3,1,4
11、,2)=?,A=-4,-2,0,2,4;-3,-1,1,3,5; %创建矩阵AL=abs(A)3 %建立矩阵Lislogical(L) %判断L中是否有逻辑1X=A(L) %指出A中绝对值大于3的元素,其它赋值方式,用户可以利用下标给某元素单独赋值。如果赋值元素的下标超出了原来矩阵的大小,矩阵的行列会自动扩展,跳空的元素被自动赋值0。,这种自动扩展维数的功能只适用于赋值语句,A(2,3)=10A= -4 -2 0 2 4 -3 -1 10 3 5,A(3,3)=10A= -4 -2 0 2 4 -3 -1 1 3 5 0 0 10 0 0,给全行、全列赋值,可用冒号“:”,例:a(5,:)=5
12、,4,3;,把a的第2,4行及第1,3列交点上的元素取出,构成一个新的矩阵。,例:b=a(2,4,1,3);,利用空矩阵“ ”,可抽去a中的任意行,例:a(2,4,:)= ;,“空矩阵”是指没有元素的矩阵,不是零矩阵。对任何一个矩阵赋值 ,就是使它的元素都消失。,A=zeros(2,5); %创建25的零矩阵A(:)=-4:5 %修改矩阵给编号从110的元素分别赋值, 大小从-4按步长1一直增加到5 A= -4 -2 0 2 4 -3 -1 1 3 5,2.1.6 复数表示,MATLAB的每一个元素都可以是复数,实数是复数的特例。复数的虚部用i或j表示。,对复数有两种赋值方法:,1.将其元素逐
13、个赋予复数,2.将其实部和虚部矩阵分别赋值,如z=1,3;5,7+2,4;6,8*i (*号不能省略),如 z=1+2i,3+4i;5+6i,7+8i,若在前面程序中曾经给i或j赋过值,则i或j就不再是虚数单位,此时应把赋值的i或j清除再执行虚数赋值语句。,2.2 MATLAB的基本管理命令,2.2.1 save与load命令(变量的存储与下载),save filename a b c 把a、b、c三个变量保存在文件名为filename.mat的文件中。,利用save和load命令实现数据文件存取是所有MATLAB版本采用的基本操作方法。具体格式有:,save filename 把全部内存变量
14、保存为filename.mat文件。若文件名省略,默认文件名为matlab。,save filename a b c append 把a、b、c三个变量追加到文件名为filename.mat的文件中。,在MATLAB中,第二次再用save命令时,如果仍用默认文件名,则原来的数据就被冲掉,也可利用菜单保存变量,【File】Save Workspace As,菜单命令会打开一个标准的文件对话框,与windows操作基本一样,此时会保存工作空间里所有的变量,不能选择。,load是save的逆过程,它把磁盘上存储的mat数据取回到MATLAB的工作空间中。默认的文件名也是matlab.mat。在不用默
15、认文件时,命令格式与save相似。,loadLoading from: matlab.mat,当要提取文件中某些变量时,文件名不能省略。,例如:load A 提取文件matlab中的A变量,? Error using = loadUnable to read file A: No such file or directory.,2.2.2 clear命令(变量的删除),Matlab中内存变量的删除可以通过在指令窗口中运行clear来进行。clear操作通常有两种方式:,clear 清除当前工作空间中的全部变量,clear a b c 清除当前工作空间中的变量a、b、c,被清除的变量之间只能用空
16、格,不能用逗号或分号。因为在一条指令中,逗号和分号都表示该指令结束,不同的是逗号结束的指令要显示运算结果,而分号结束的指令不显示执行结果。,a=1;b=2;c=3;clear a,b;cc= 3bb= 2a? Undefined function or variable a.,例,用clear命令时,系统不会给出确认提示,一旦删除将不能恢复。,2.2.3 who和whos命令(变量信息的查询),在调试程序的时候,往往需要检查工作空间中的变量及其阶数。这时需要用到who和whos命令。who命令用于查看工作空间都有哪些变量名;whos命令用于了解变量的具体细节。调用方式:,who(whos) 查
17、看工作空间里所有的变量who(whos) a b 查看工作空间里的变量a和b,被查看的变量之间只能用空格,不能用逗号或分号。,当想给某一个变量赋值时,为了避免与已存在的变量同名,就要用exist查询当前的工作空间内是否存在该变量。调用格式:x=exist(A),永久变量用who指令是查看不到的,只可随时调用,例,a=1 2 3;4 5 6;b=2 5+8 9*i;c=23.5;whoYour variables are:a b c whos Name Size Bytes Class a 2x3 48 double array b 1x2 32 double array (complex) c
18、 1x1 8 double arrayGrand total is 9 elements using 88 bytes,2.2.4 format 命令(数据格式),format 命令用来控制数据显示格式。,format compact 数据显示紧凑格式,format loose 数据显示稀疏格式(系统默认),数字的显示格式有12种,见书第23页表2-3, format 命令只改变数字的显示格式,并不改变数字的大小。,2.3 matlab 的常用数学函数,matlab提供了几乎所有的初等数学函数,包括三角函数、对数函数、指数函数和复合运算函数等。函数的一般调用格式为:,函数名(变量),变量就是m
19、atlab的矩阵变量。函数的运算就是将函数运算分别作用于变量的每一个元素。,常用数学函数见书24页,表2-4,注意:1.MATLAB只对弧度操作,若为角度,则换成弧度。2.MATLAB系统提供的所有函数名都是小写字母。,2.4 矩阵与数组运算,Matlab有两类运算指令:矩阵算术运算和数组算术运算。矩阵运算操作是按照线性代数的运算法则定义的;数组运算操作是按元素逐个执行的。在matlab系统中提供了如下的矩阵运算:,矩阵加、减(,)运算,相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减。,允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。,运算符+和可以作为一元运算符
20、使用。+A就是取A, A就是对A中的每个元素取负。,2.4.1 矩阵与数组的算术运算,2. 乘(、. )运算,A矩阵的列数必须等于B矩阵的行数,标量可与任何矩阵相乘。,矩阵乘()运算A*B,数组乘(.)运算A.*B,A,B两数组必须有相同的行和列,两数组相应元素相乘。,A=1 2 3;4 5 6;7 8 9;B=2 4 6;1 3 5;7 9 10;A.*B,3. 乘方(、.)运算,矩阵乘方()运算 Ap,矩阵A必须是方阵,A和p不能同时为矩阵;,当p取整数时,该指令的运算结果可以做如下的理解:,当p0时, Ap表示方阵A的直接自乘p次;,当p0时, Ap表示方阵A的逆矩阵直接自乘p次;,当p
21、=0时, Ap表示与方阵A同维的单位阵;,当p取非整数时,该指令的运算结果可以做如下的理解:,若A可以分解为A=WDW-1,D为对角阵,那么可定义,A-p=WD-pW-1,ans = 30 36 42 66 81 96 102 126 150,当一个方阵有复数特征值或负实特征值时,非整数幂是复数阵。,a=1,2,3;4,5,6;7,8,9; a2,ans = 0.4498 + 0.7623i 0.5526 + 0.2068i 0.6555 -0.3487i 1.0185 + 0.0842i 1.2515 + 0.0228i 1.4844 - 0.0385i 1.5873 - 0.5940i 1
22、.9503 - 0.1611i 2.3134 + 0.2717i,a0.5,例,数组乘方(.)运算 A.B,数组A与数组B对应元素的乘方运算,A和B必须为同维矩阵。,B可以是标量,此时表示数组A中的每一个元素进行B次幂的运算。,例: a=1 2 3; b=4 5 6;,z=a.b,z=a.2,z = 1 4 9,z = 1.00 32 729,4. 除(,/)运算,矩阵的除运算在线性代数中没有,只有矩阵求逆的运算,在MATLAB中有两种矩阵除运算,规则:,左除:AB=A-1B,A为方阵 右除:A/B=AB-1,B为方阵,任何矩阵都可除以标量。,矩阵除(、/)运算,a./b=b.a 都是a的元素
23、被b的对应元素除(a除以b),例: a=1 2 3;b=4 5 6; c1=a.b, c2=b./ac1 = 4.0000 2.5000 2.0000c2 = 4.0000 2.5000 2.0000,a.b=b./a 都是b的元素被a的对应元素除( b除以a),数组除(.、./)运算,5. 转置(、.)运算,矩阵的共轭转置。在矩阵为复数矩阵时,求转置时首先对矩阵元素进行转置再逐项求取其共轭数值。,矩阵共轭转置()运算, a=1+2i 3-2ia = 1.0000 + 2.0000i 3.0000 - 2.0000i, aans = 1.0000 - 2.0000i 3.0000 + 2.00
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 数值 计算 功能 课件
链接地址:https://www.31ppt.com/p-1487998.html