MATLAB第三章数值数组及其运算.ppt

上传人:小飞机 文档编号:6512070 上传时间:2023-11-08 格式:PPT 页数:42 大小:317.99KB
返回 下载 相关 举报
MATLAB第三章数值数组及其运算.ppt_第1页
第1页 / 共42页
MATLAB第三章数值数组及其运算.ppt_第2页
第2页 / 共42页
MATLAB第三章数值数组及其运算.ppt_第3页
第3页 / 共42页
MATLAB第三章数值数组及其运算.ppt_第4页
第4页 / 共42页
MATLAB第三章数值数组及其运算.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《MATLAB第三章数值数组及其运算.ppt》由会员分享,可在线阅读,更多相关《MATLAB第三章数值数组及其运算.ppt(42页珍藏版)》请在三一办公上搜索。

1、1,第三章 数值数组及向量化运算,2,3.1 数值计算的特点和地位,符号运算优点:可以对包含变量字符、参数字符和数字的表达式进行推理、运算,并给出符号结果,与高校教科书中的解析表达式接近。,不足:有很多问题无法解,有些问题求解时间过长,现代主流计算机都只能表示、保存、运算和输出有限精度的数字,处理离散的信息。数值计算正好适应了现代计算机的这种特点,它计算速度快,能处理各种复杂的函数关系。但数值计算是以有限精度数字为基本操作元素,只能用有限长度的数据,以有限的精度表现有限时间和范围内的函数关系。,3,例 3.1-1 已知,求,(1)符号计算解法,syms t;ft=exp(sin(t);sx=i

2、nt(ft,t,0,4),Warning:Explicit integral could not be found.sx=int(exp(sin(t),t=0.4),(2)数值计算解法,delt=0.01;x=0:delt:4;y=exp(-sin(x);sx=delt*cumtrapz(y);plot(x,y,r,LineWidth,6);hold on;plot(x,sx,.b,MarkerSize,15);plot(x,ones(size(x),k);,4,3.2 引导,数值数组(Numeric Array)和数组运算(Array Operations)是matlat的核心内容.,数组:

3、一组实数或复数排成的长方阵列.可以是一维的行或列,二维的矩形,也可以是三维的若干同维矩形的堆叠,甚至更高维.,数组运算:无论在数组上施加什么运算(加减乘除或函数),总认为那种运算对被运算数组中的每个元素平等地实施同样的操作,matlab 设计数组和数组运算的目的:,1)使程序简单易读,使程序指令更接近教科书上的数学计算公式.,2)提高程序的向量化程度,提高计算效率,节省计算机开销,数组运算符:.opr+,-,.*,./,.,.,fun,5,3.3 一维数组的创建和寻访,1.一维数组的创建:,(1)逐个元素输入法:,如:array=2,pi/2,sqrt(3),3+5i,使用场合及特点,使用场合

4、:数据元素比较少并都已知.如对少量实验数据的处理可用此种方法.,x=1,2,3,4,5,行向量,列向量,6,(2)冒号生成法:,array=a:inc:b a-数组的第一个元素 inc-采样点之间的间隔,即步长.最后一个元素不一定等于b,其大小为b=a+inc*(b-a)/inc;步长可以省略,默认为1;inc可以取正数或负数,但要注意当取正时,要保证ba,数组最后一个元素不超过b,取负时ba,最后一个元素不小于b.,特点:等差数列,方便对数据之间的间隔(步长)进行控制.但要注意三个数值之间的关系,可能得到空数组另外要注意生成的数组的元素的个数如x=a:(b-a)/n:b(ba)得到n+1个元

5、素的数组.,a,b,inc0,a,b,inc0,7,x=1:5x=1,2,3,4,5y=5:-1:1y=5,4,3,2,1Z=1:2:7z=1,3,5,7 u=1:2:8u=1,3,5,7,x=31,32,33,34,35,36,37,38,39,输出一个等比数列:,a=1:1:9;x=3.a,8,A=1:-1:9 A=Empty matrix:1-by-0B=9:1:1B=Empty matrix:1-by-0B=1:2:8B=1,3,5,7C=8:-2:1C=8,6,4,2,9,(3)定数线性采样法,在设定的总点数下,均匀采样生成一维行数组格式为:x=linspace(a,b,n),a-数

6、组初始值,b-数组最后值,n-数组总个数,特点:方便对数组的元素的总个数进行控制,最后一个元素肯定是设定之值三个参数之间不必满足一定条件,增量的计算-inc=(b-a)/(n-1),等效于:x=a:(b-a)/(n-1):b,10,2.一维数组的子数组寻访和赋值,x=1 2 3 4 5;x(3)x(1 2 3),x(1 2 3)x(1:3)=x(1,2,3)%1:3=1,2,3x(3:end)%end表示最后一个下标x(3:-1:1)x(find(x2)x(1 2 3 4 5 5 4 3 2 1),注意:数组的第一个元素为x(1),与C语言中第一个元素为x0不同,11,3.4二维数组的创建,二

7、维数组是由实数或复数排列成矩形而构成的.从数据结构上看,矩阵和二维数组没区别.当二维数组带有线性变换含义时,该二维数组就是矩阵,2.利用文件创建和保存数组,1.直接输入法:对于较小数组,从键盘直接输入最简便.二维数组必须有以下三个 要素:1)整个输入数组必须以方括号“”为其首尾;2)数组的行与行之间必须用分号或回车键隔离;3)数组元素必须有逗号或空格分隔,12,例3.1 用直接输入法创建数组,a=pi,b=5;array=1,2*pi,2+3i;sqrt(b),sin(pi/4)+i,6;,例3.2利用文件创建和保存数组,1.编写M文件并运行AM=100,101,102;103,104,105

8、;106,107,108,保存为文件名MyMatrix.m,2.在命令窗中输入MyMatrix,13,3.5 二维数组的标识(mxn,m1,n1),2)单下标标识,数组名(行下标m,列下标n)-数组的第m行n列的元素.,A=1,2,3;4,5,6A(2,3),只用一个下标来指定元素在数组中的位置将数组中所有的元素按照从上到下(列),从左到右的方法从开始编号,其编号就是单下标,1)全下标标识,|1 2 3|A=|4 5 6|7 8 9|,A(:)按单下标方式列出全部元素A(:)=1,4,7,2,5,8,3,6,9,14,4)全下标与单下标间的转换函数sub2ind-全下标单下标ind2sub-单

9、下标全下标,3)单下标与全下标之间的转换对数组A(m,n)来说,若元素A(r,c)与A(s)是同一元素,则有:s=m*(c-1)+r,5)逻辑1标示,A=1,2,3,4,5;TRUE=10;FALSE=01;L=TRUE,FALSE,TRUE,FALSE,TRUEA(L)=1,3,5,15,3.6 二维数组的子数组寻访和赋值,1)寻访某一个元素,array(r,c)-数组中的第r行c列的元素,array(r,:)-数组的第r行全部元素array(:,c)-数组的第c列的全部元素array(r1,r2,:)-数组的第r1,r2行的全部元素,array(x)-按单下标寻访数组,从第一个元素按列数第

10、x个元素,2)寻访某一列或一行的元素,3)单下标寻访,4)寻访全部元素,array(:,:),array(:),16,A=1,2,3;4,5,6;7,8,9;A(2,3)=6A(3)=7A(:,:)=1,2,3;4,5,6;7,8,9;A(:)=1,4,7,2,5,8,3,6,9A(1,3,5)=1,7,5,A=1,2,3 4,5,6 7,8,9,例3.6.1二维数组的寻访,x(2,:)=x(2,:)+1,17,3.7 执行数组运算的常用函数,函数数组运算规则的定义,|x11 x12 x1n|x21 x22 x2n|对于(m x n)数组X|=xij m x n|xm1 xm2 xmn|函数f

11、(.)的数组运算规则是指:f(X)=f(xij)m x n也就是对数组中每个元素都实施同样的操作,例2.1 x=30,45,60;90,105,120,计算sin(pi/180*x),18,常用函数:,三角函数和双曲函数,19,指数函数,复数函数,20,坐标变换函数,圆整函数与求余函数,21,3.8 数组运算与矩阵运算,数组运算是指每个对应元素之间的运算,比如对应元素相加,相减,相乘,相除等,而矩阵运算则服从线性代数中的矩阵运算规则数组运算符是.opr,opr为运算符,可以是,*,/,矩阵运算则没有在操作符左边加.,matlab中矩阵的运算是按照线性代数中的定义进行的数组运算函数:sqrt,e

12、xp,log.矩阵运算函数:sqrtm,expm,logm.,22,数组(矩阵)的点乘和乘法的区别,乘法:是矩阵相乘,必须满足矩阵相乘的定义,即只有Amxn*Bnxk才有意义,行向量和行向量之间不能相乘,点乘:是数组对应元素间的乘法,必须满足相乘的两个数组的维数完全相同,如Amxn.*Bmxn,例 将函数y=xsinx在区间0,2离散化,x=0:2*pi/100:2*pi;y=x.*sin(x);,x=0,2*pi/100,2*2*pi/100,2*pi,sin(x)=sin(0),sin(2*pi/100),sin(2*2*pi/100),sin(2*pi),23,例2.2a=1,2,3;4

13、,5,6;7,8,9,b=2,4,6;8,10,12;14,16,18,计算a+b,a.*b,a*b,sqrt(a),sqrtm(a),+,-相同位置的元素相加,减.*相同位置的元素相乘*矩阵相乘,满足矩阵相乘的条件.点幂,数组(矩阵)中每个元素进行幂运算矩阵的运算,24,3.9 标准数组生成函数和数组操作函数,1)标准数组生成函数,例2.3 diag,eye,zeros,ones 的演示,eye(3),eye(2,3),zeros(3),zeros(2,3),ones(3),ones(2,3)a=1,2,3;4,5,6;7,8,9,x=1:1:9;diag(a),diag(x),25,2)数

14、组操作函数,26,矩阵的常用操作,(1)转置,共轭转置-A,z共轭-conj(A)转置-conj(A)-复数=A.,(2)+-*/,A=1,2,3;,4,5,6;7,8,9;C=2,4,6;8,10,12;14,16,18b=12;15;20 z=1+i,2+3i,5;2,3i,4+i;4+3i,5,i,(3)tril,triu,reshape,a=1,2,3;4,5,6;7,8,9,x=1:1:9;tril(a),triu(a);reshape(x,3,3),27,数组的组合:,x1=1,2,3;x2=4,5,6;x3=7,8,9;a=x1,x2,x3,b=x1;x2;x3y1=x1,y2=

15、x2,y3=x3c=y1,y2,y3,d=y1;y2;y3,a=1 2 3 4 5 6 7 8 9,b=1 2 3 4 5 6 7 8 9,c=1 4 7 2 5 8 3 6 9,d=a,增加列,要保证行数相等;增加行,要保证列数相等,28,3)矩阵分析,29,例解多元一次方程,x+3y+z=15已知:2x+y+3z=20求 x,y,z之值 x+y=4,1)将方程化为矩阵与矢量相乘的形式:AX=b,写出,解题步骤:,2)判断方程组是否有解计算矩阵和其增广矩阵的,3)如果有解,则解为:X=A-1*b=A(-1)*b=inv(A)*b或 X=Ab,A,b,秩 r(A),r(A|b),A=1,3,1

16、;2,1,3;1,1,0;,b=15,20,4;,rank(A);rank(A,b);,30,3.11 非数和空数组,按IEEE规定,0/0,/,0*等运算都会产生非数,在matlab 中记为nan.它具有以下性质:,1)nan参与运算所得结果也是nan,即具有传递性,2)非数没有大小概念,因此不能比较两个非数的大小,功能:真实记述0/0,/,0*运算的后果;避免可能因以上运算而造成的程序执行的中断;在数据可视化中,用来裁减图形,31,例2.11-1 非数的产生和性质演示,(1)非数的产生,a=0/0,b=0*log(0),c=inf-inf,(2)非数的传递性,0*a,sin(a);,(3)

17、非数的属性判断,class(a),isnan(a),isnan-唯一能正确判断非数的指令,32,3.11.2 空数组,空数组的功能:,在没有空数组参与运算时,计算结果中的空可以合理地解释所得结果的含义(如在某数组中寻找满足一定条件的数据,结果没有,得到空数组,表示没有满足条件的元素);运用空数组对其他非空数组赋值,可以改变数组的大小,但不能改变数组的维数,空数组的创建,array1=;array2=zeros(2,0);array3=1:-5;a=1,2,3;array4=find(a0),空数组的判断,isempty(array1),33,3.12 关系操作和逻辑操作,matlab 的约定,

18、1)在所有关系表达式和逻辑表达式中,作为输入的任何非0数都被看作逻辑真,只有0才被认为是逻辑假.,2)所有关系表达式和逻辑表达式的计算结果,即输出,是一个由0和作成的逻辑数组.其中表示真,0表示假.,3)逻辑数组是一种特殊的,它表示着对事物的判断结论“真”与”假“,34,关系操作,说明:1)标量可以与任何维数的数组进行比较,比较在此标量和数组 每个元素之间进行,因此比较结果为与被比数组同维的数组.2)数组进行比较时,两数组必须是同维的,结果也得到一个同维的数组,35,|2,4,6|1,3,5|A=|3,5,7|B=|4,6,8|1,8,9|2,7,9|1,1,1|0,0,1|AB=|0,0,0

19、|A5=|0,0,1|0,1,0|0,1,1|,find(A5)=6,7,8,9%得到数组下标,单下标A(find(A5)=8,6,7,9,36,例3.12-1 求近似极限,修补图形缺口sin(t)/t t-2,2,t=-2*pi:pi/10:2*pi;y=sin(t)./t;%除还是点除tt=t+(t=0)*eps;%处理分母为的点yy=sin(tt)./tt;subplot(1,2,1),plot(t,y);axis(-7,7,-0.5,1.2);xlabel(t),ylabel(y),title(残缺图形);subplot(1,2,2),plot(tt,yy);axis(-7,7,-0.

20、5,1.2);xlabel(t),ylabel(yy),title(完整图形),37,38,逻辑操作,说明:,1)标量可以与任何维的数组运算.逻辑运算在标量与数组每个元素间进行,因此运算结果是与参与运算的数组维数相同的数组.,2)数组之间也可以进行逻辑运算,参与运算的必须维数相同.此时运算在两数组同位置上的元素之间进行.因此运算结果是与参与运算的数组维数相同的数组,39,关系,逻辑函数,1)特殊数据判断指令,40,2)数据类型判断指令,41,例3.12-1 正弦函数y=sint(t0,3)的半波整流.,0,pi,2pi,3pi,t2pi,z=sin(t)*1否则 z=sin(t)*0,42,t=linspace(0,3*pi,500);y=sin(t);z=(t2*pi).*y;subplot(1,2,1),plot(t,y),ylabel(y);subplot(1,2,2),plot(t,z),axis(0 10-1 1);,x=1,2,3,4,5,6,7,8,9y=x6y=1,1,1,0,0,0,1,1,1z=x.*y=1,2,3,0,0,0,7,8,9,z=y.*(y0);,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号