一维数组及其应用课件

上传人:仙*** 文档编号:240906972 上传时间:2024-05-17 格式:PPT 页数:68 大小:728.50KB
返回 下载 相关 举报
一维数组及其应用课件_第1页
第1页 / 共68页
一维数组及其应用课件_第2页
第2页 / 共68页
一维数组及其应用课件_第3页
第3页 / 共68页
点击查看更多>>
资源描述
一维数组及其应用一维数组及其应用36、如果我们国家的法律中只有某种神灵,而不是殚精竭虑将神灵揉进宪法,总体上来说,法律就会更好。马克吐温37、纲纪废弃之日,便是暴政兴起之时。威皮物特38、若是没有公众舆论的支持,法律是丝毫没有力量的。菲力普斯39、一个判例造出另一个判例,它们迅速累聚,进而变成法律。朱尼厄斯40、人类法律,事物有规律,这是不容忽视的。爱献生整个数组放在方括号里行数组元素用空格或逗号分隔 x=2,pi/2,sqrt(3),3+5i 列数组元素用分号分隔,分号起换行 y=2;pi;3/4;j 标点符号一定要在英文状态下输入二、创建一维数值数组二、创建一维数值数组1、用方括号、用方括号 创建一维数组创建一维数组2、用、用 由小数组生成大数组由小数组生成大数组 a=1,3 b=2,4 c=3;5 d=a,a f=d,b g=c;c h=g;g(1)执行如下赋值语句:)执行如下赋值语句:(2)然后执行如下赋值语句:)然后执行如下赋值语句:此时:d=?f=?此时:g=?h=?(3)再执行如下赋值语句:)再执行如下赋值语句:x=方括号内无字符,或只包含空格,则生成空数组。此时在matlab内部生成一个double类型的变量x,其内容为空,占用0字节。空数组在进行数组并置操作(二个小数组合并为一个大数组)时,经常用到。3、用、用 生成空数组生成空数组 x=a=2,4 b=3,5 x=x,a x=x,b(1)执行如下赋值语句:)执行如下赋值语句:(2)然后执行如下赋值语句:)然后执行如下赋值语句:此时:x=?4、用冒号、用冒号:创建一维数组创建一维数组x=a:bx=a:inc:b生成如下数组x=a,a+inc,a+2*inc,a,b必须为实数,若未提供inc的数值,则 inc=1a是数组x中的第一个元素,b不一定是数组x的最后一个元素。若inc取的不合适,可能会生成空数组。x=1:10 y=10:-2:-10 z=1:2:99,2:2:100 w=2:3:-10 x=?y=?z=?w=?5、用、用linspace()函数创建一维数组函数创建一维数组x=linspace(a,b)x=linspace(a,b,n)x=linspace(0,8,17)y=linspace(1+i,4+4*i,7)在a和b之间,均匀生成 n(未提供n时,n=100)个数据,包括a和b在内。a,b可以为复数若a,b为实数,等效于:执行如下赋值语句后,执行如下赋值语句后,x=?y=?6、用、用logspace()函数创建一维数组函数创建一维数组x=logspace(a,b)x=logspace(a,b,n)x=logspace(a,pi,n)先在a和b之间均匀生成n个数据,包括a和b,然后以这n个数据为指数,生成一维数组x。例:x=logspace(1,2,6)生成的数组为:x=101,101.2,101.4,101.6,101.8,102 =10.0000,15.8489,25.1189,39.8107,63.0957,100.0000三、一维数组的访问和赋值三、一维数组的访问和赋值b=x(end)end是数组x的最后一个元素的下标引用数组 x 中的最后一个元素,将其赋值给变量 bc =x(8)会出现什么结果?1、引用一维数组中的单个元素、引用一维数组中的单个元素Matlab中数组元素的下标从 1 开始x=1:5k=2a=x(k)引用数组 x 中的第 k 个元素,将其赋值给变量 a2、一维数组中单个元素的赋值、一维数组中单个元素的赋值x=1:5a=1.5k=3x(k)=0将 0 赋值给数组 x 中的第 k 个元素x(end)=a将 a 赋值给数组 x 中的最后一个元素x(8)=6.5 会出现什么结果?3、引用一维数组中的子数组、引用一维数组中的子数组引用一维数组x中的第2、5、9个元素,将其赋值给变量 ax=linspace(1,5)a=x(2,5,9)b=x(end:-1:1)c=x(1:2:end)d=x(2:2:end)b=?c=?d=?x=linspace(1,5)s=2,5,9a=x(s)4、一维数组中子数组的赋值、一维数组中子数组的赋值将2、7分别赋值给x的第1、4个元素x=linspace(1,5)x(1,4)=2,7x=linspace(1,5)s=1,4a=2,7x(s)=a5、利用空数组进行赋值可以修改数组的大小、利用空数组进行赋值可以修改数组的大小x=10:10:70 x(2)=此时:x=?x(2,4)=此时:x=?(2)再执行如下赋值语句:)再执行如下赋值语句:(1)执行如下赋值语句:)执行如下赋值语句:四、数组运算四、数组运算数组运算是Matlab软件定义的运算规则,其目的是为了数据管理方便、操作简单、指令形式自然和执行计算的有效。无论在数组上施加什么运算(加减乘除或函数),总认定那种运算对被运算数组中的每个元素(Element)进行运算。1 1、一维数组的、一维数组的转置运算转置运算x.x对x做转置(行列,列行)对x做共轭转置若x的元素均为实数,则x.与x的结果相同y=x.对数组x做转置运算,将运算结果赋值给变量y,内存中数组x的内容并没有任何变化。x1=(1:10).y1=(1:10)x2=linspace(i,10*i).y2=linspace(i,10*i)(1)两个一维数组之间的两个一维数组之间的数学运算数学运算x+y:加,对应位置的数组元素相加x-y:减,对应位置的数组元素相减x.*y:点乘,对应位置的数组元素相乘x./y:右点除,对应位置的数组元素相除x.y:左点除x.y:点幂,对应位置的数组元素做幂运算一维数组x、y 维数相同维数相同 时,可以进行如下如下的数组运算:运算结果为与x、y同维的数组2 2、一维数组的、一维数组的数学运算数学运算(2)一维数组与一维数组与标量标量 之间之间的的数学运算数学运算x+c:x的每个元素加cx-c:x的每个元素减cx.*c 或 x*c:x的每个元素乘c,x./c 或 x/c:x的每个元素除以cx.c 或 xc:c除以x的每个元素x.c:点幂,x的每个元素做幂运算c.x:点幂,c做幂运算运算结果为与x同维的数组x为一维数组,c为一个数(标量),x和c之间可以进行:练习:试写出下列matlab语句的输出结果,并在matlab中进行验证。a=1,1,1 b=1,0,0c=0,0,0 d=(a+b).*(a-b)e=(d+1)+(d-1)*if=e./e+e.eg=b.d+d.b 关系运算符说明举例返回结果小于ab 1,0,0,0=小于等于a大于ab 0,0,1,0=大于等于a=b 0,1,1,1=等于a=b 0,1,0,1=不等于a=b 1,0,1,0(1)两个一维数组之间的关系运算关系运算进行比较的两个数组必须维数相同维数相同,比较在两数组相同位置上的元素间进行,返回一个由0和1组成的“逻辑数组”。3 3、一维数组的、一维数组的关系运算关系运算关系运算符说明举例返回结果小于ab 1,0,0,0=小于等于a大于ab 0,0,1,1=大于等于a=b 0,1,1,1=等于a=b 0,1,0,0=不等于a=b 1,0,1,1(2)一维数组和标量标量之间的关系运算关系运算标量可以与任何维数组进行比较。比较在此标量与数组每个元素之间进行,因此比较结果与被比数组同维,返回一个由0和1组成的“逻辑数组逻辑数组”。(3)关系运算中的注意事项比较两个浮点数是否相等时需要注意,由于浮点数的存储时的误差的存在,在程序设计中要避免直接比较两个浮点数是否相等,而是采用大于、小于的比较运算将待确定值限制在一个满足需要的区间之内。比较两个数是否相等的关系运算符是“=”,单个的等号“=”是变量赋值符号。不等于的关系运算符是“=”,不要与 C 语言的不等于符号“!=”混淆。3x7这样的数学表达式必须用逻辑“与”运算才能正确表示。a=0,1,2,0,3,b=4,5,0,0,6,c=7逻辑运算运算符函数形式结果与a&band(a,b)0,1,0,0,1或a|cor(a,c)1,1,1,1,1非anot(a)1,0,0,1,0异或xor(a,b)1,0,1,0,0在逻辑表达式中,作为输入的任何非 0 实数都被看作是“逻辑真”,只有 0 才被认为是“逻辑假”。标量(一个数)可以与任何维数组进行逻辑运算。运算在标量与数组每个元素间进行。当两个数组进行逻辑运算时,参与运算的数组必须维数相维数相同同,运算在两数组相同位置上的元素间进行。逻辑运算可以在标量与标量,数组与数组,标量与数组间进行4、一维数组的逻辑运算逻辑运算5、逻辑数组用作“逻辑索引逻辑索引”逻辑索引:通过逻辑数组 L 中“逻辑1”所在的位置,指出数组 A 中元素的的位置,从而可以对A 数组中的元素(子数组)进行访问或赋值。A=1:10L=logical(0 1 0 1)A(L)L 的元素个数应等于或小于 A 的元素个数,一般情况下,L 应是与 A 同维的逻辑数组 6、函数、函数作用在数组上的运算规则作用在数组上的运算规则Matlab中的很多函数都可以直接以数组作为输入参数,函数会作用在数组的每个元素上。输入为行数组,则输出也为行数组输入为列数组,则输出也为列数组关系、逻辑运算举例在100,103,106,109,.,148,151这些整数中,能被 7 整除的数有哪些?A=100:3:151B=rem(A,7)L=B=0r=A(L)100以内的哪些正整数满足:0.7 sin(n)0.7L2=sin(n)0.75L=L1&L2r=n(L)五、与一维数组相关的一些常用函数五、与一维数组相关的一些常用函数max(x)a,b=max(x)max(x,y)返回x中的最大值返回x的最大值(a)及最大值在x中的位置(b)返回一向量,元素为x,y相同位置上的较大值min(x)c,d=min(x)min(x,y)返回x中的最小值返回x的最小值(c)及最小值在x中的位置返回一向量,元素为x,y相同位置上的较小值mean(x)返回x的平均值std(x)返回x的标准偏差median(x)返回x的中位数(把x的所有元素排序后找出正中间的一个作为中位数。如果有偶数个元素,则取最中间的两个数值的平均数作为中位数。)当函数的输入参数为一维数组x时(x为行或列):sort(x)sort(x,descend)y,ix=sort(x)返回x中的元素按升序排序的向量返回x中的元素按降序排序的向量ix为与x同维的数组,其中存储的是排序后各个元素原先在数组x中的位置length(x)返回数组的长度(行数或列数的较大值)numel(x)返回数组元素的个数sum(x)计算x的所有元素的和cumsum(x)返回一个包含x的元素的累加和的向量,其大小与x相同prod(x)计算x的元素的积cumprod(x)返回一个包含x的元素的累乘积的向量,其大小与x相同diff(x)返回 x2-x1,x3-x2,x4-x3,xn-xn-1 logical(x)输入x为一维实数数组,返回一个与x同维的逻辑数组,当x中的元素为非零元素时,y中对应的位置返回逻辑1,否则返回逻辑0。注意:x中的元素不能为复数或 NaNall(x)x为一维数组(忽略其中的NaN),若其元素全部为真,则返回真,否则返回假。(返回一个逻辑数)any(x)x为一维数组(忽略其中的NaN),若其元素不全部为假,则返回真,否则返回假。(返回一个逻辑数)六、一维数组在二维绘图中的应用六、一维数组在二维绘图中的应用x,y为同维的一维数组,二维绘图函数plot(x,y)的绘图原理:分别以x,y对应位置的元素为横坐标和纵坐标,得到n个数据点,描点,然后依次将第1,2,n点连线,绘制出二维图形。一维数组xx1x2xn一维数组yy1y2yn数据点(x1,y1)第1点(x2,y2)第2点(xn,yn)第n点x=0:0.1:10*piy=sin(2*x).*cos(x/2)plot(x,y)数组乘法x00.10.2sin(2x)00.19870.3894cos(x/2)10.99880.9950y00.19840.3875七、一维数组在向量运算中的应用七、一维数组在向量运算中的应用1、向量的模(长度)、向量的模(长度)a=4,3,1 d=sqrt(sum(a.*a)或:d=sqrt(sum(a.2)2、两点之间的距离、两点之间的距离 a=4,3,1 b=5,2,3 AB=sqrt(sum(a-b).2)3、向量的方向角与方向余弦,单位向量、向量的方向角与方向余弦,单位向量 a=4,3,1 d=sqrt(sum(a.2)e0=a./d4、向量的线性运算、向量的线性运算a=4,3,1b=5,2,3c=1.6直接利用matlab的数组运算规则即可进行运算p=a+bs=a bd=c*a5、两向量的数量积(内积、两向量的数量积(内积/点积点积/点乘)点乘)=dot(a,b)=sqrt(dot(a,a)Matlab中提供了 dot()函数实现两向量的数量积6、两个向量之间的夹角、两个向量之间的夹角tmp=dot(a,b)/sqrt(dot(a,a)/sqrt(dot(b,b)theta=acos(tmp)7、两向量的向量积(叉乘)、两向量的向量积(叉乘)=cross(a,b)Matlab中提供了 cross()函数实现两向量的向量积8、向量的混合积:、向量的混合积:=dot(cross(a,b),c)上机练习:3.以A(1,2,3),B(2,0,5),C(4,2,-1)为顶点的三角形的面积。4.求以A(0,0,2),B(3,0,5),C(1,1,0),D(4,1,2)为顶点的四面体的体积。八、一维数组在一元多项式运算中的应用八、一维数组在一元多项式运算中的应用借助matlab提供的函数,处理多项式是一件非常简单的事情,很容易对多项式进行积分、微分以及求根的操作。一元多项式在代数中占有非常重要的地位。在实际应用中如对实验数据的插值、微商和曲线拟合等,都要大量用到多项式;在矩阵分析时,也要用到一元多项式的概念。多项式函数是形式最简单的函数,也是最容易计算的函数,从理论上讲,它可以表示绝大多数复杂函数。在许多计算机的计算和编程中,很多函数值如sin(x),cos(x)等的计算都是先将函数进行Tailor展开为多项式进行逼近计算的,并且都能达到很高的精度。在matlab中,一个一元多项式用一个行向行向量量来表示的,向量元素为多项式系数的降幂降幂排列,其中最后一个元素代表多项式中的0幂项。1、多项式的表示和创建、多项式的表示和创建p=1,-12,0,25,1162、多项式的符号表示、多项式的符号表示poly2sym()把系数向量表示的多项式转为符号表示poly2sym(p)用默认字符x来表示多项式的变量poly2sym(p,v)用字符v来表示多项式的便量p=1,-12,0,25,116px=poly2sym(p)pt=poly2sym(p,t)3、计算多项式的值、计算多项式的值p=1,-12,0,25,116;x1=2.3;x2=-1,3,7;y=polyval(p,x)p1=polyval(p,x1);p2=polyval(p,x2);计算多项式p在x处的值,x可以是标量,或数值数组4、求多项式的根、求多项式的根r=roots(p)此函数返回多项式p的根组成的向量多项式和多项式的根都是用向量表示的,为加以区别,多项式的根表示成列向量列向量。p=1,-12,0,25,116r=roots(p)对于系数为实数的多项式,如果其根出现复数,则复数必是成对出现的。5、由根创建相应的多项式、由根创建相应的多项式r=1;2;-1;3;7 p=poly(r)p=poly(r)r是一个向量,构造一个多项式,其根为r由于matlab在进行数据处理时存在截断误差,因此,poly函数的返回值有可能在该出现0的位置出现了一个非常接近0的数,有时还会使某些系数带有一个很小的虚部。因此建议对poly函数的输出结果再进行一次处理,从而消除有可能出现的数据错误。例如,可以通过比较将绝对值极小的数强制置0,或利用real函数将实部从结果中提取出来,取消错误虚部的影响。由根构造多项式时,所得到的多项式的第一项为1练习6、多项式的加法和减法、多项式的加法和减法当两个多项式的阶次不同时,其系数向量的长度也不同,这时需要先将低阶多项式的系数向量前边补上足够的0,以便使它和高阶多项式具有相同的长度,然后再执行加法(减法)运算。Matlab没有专门的函数执行多项式加法(减法)如果两个多项式的阶次相同,其系数向量的长度相等,多项式的加法就是将两个多项式向量直接相加(相减)。7、多项式的乘法、多项式的乘法y1=1,2,3,4y2=1,4,9,16y=conv(y1,y2)y=poly2sym(y)w=conv(u,v)此函数返回多项式u和v的乘积多项式的乘法就是多项式系数向量之间的卷积(convolution)如果要执行多个多项式之间的乘法运算,需要重复使用conv()函数用用matlabmatlab的的conv()conv()函数求出的是具体的双精度函数求出的是具体的双精度数值数值,不是解析表达式。数值数值,不是解析表达式。练习:利用多项式乘法完成下面的计算8、多项式的除法、多项式的除法q,r=deconv(b,a)余数通常都与除数和被除数中较长的那个向量等长,因此r的前面一般有若干个0此函数表示多项式b除以多项式a得到商多项式q和余数多项式r,如果r的元素全部为0,则表示多项式b可以整除多项式a。q:存储b/a的商多项式,r:存储b/a的余数多项式9、多项式的微分(求导)、多项式的微分(求导)polyder()多项式微分k=polyder(p)求多项式p的微分多项式k=polyder(a,b)求a x b的微分q,d=polyder(b,a):求有理分式b/a的微分q:分子多项式d:分母多项式10、多项式的积分、多项式的积分p=1,6,20,48,69,72,44h=polyder(p)q=polyint(h,44)q=polyint(p,k)对多项式p积分,k为积分常数q=polyint(p)对多项式p积分,积分常数为011、部分分式展开(留数计算)、部分分式展开(留数计算)r,p,k=residue(b,a)若已知r,p,k的值,residue()函数还可以求出分子多项式b(x)和分母多项式a(x),调用格式为:b,a=residue(r,p,k)b=2,-1a=1,-5,6r,p,k=residue(b,a)Matlab求解方法:求解方法:练习:用residue函数确定A、B、C的值。有重根的例子12、多项式拟合p=polyfit(x,y,n)多项式曲线拟合(最小二乘法)n=1就是进行线性拟合多项式拟合时的注意事项在进行曲线拟合时对多项式阶次的选择是任意的。虽然高阶的多项式可以更准确地拟合数据(仅指该曲线与给定的数据之间的均方误差最小),但在进行曲线拟合时,并不需要采用太高阶的多项式,这主要基于以下原因:1、越是高阶的多项式其数值特性越差,计算起来也越耗时;2、随着多项式阶次的升高,拟合的曲线变的越来越不平滑,通常会出现用户不愿意看到的局部波形;3、由于数据本身的近似性,因此在进行数据拟合时没有必要仅仅考虑使拟合的曲线无限接近数据点,而要在曲线的阶次合均方误差之间综合考虑,因为越是高阶的多项式在物理实现时越困难。从数学原理上,n+1个数据点可以惟一定义一个n次曲线(或n阶多项式)。xy00.20.611.31.61.71.81.92.22.32.52.62.93.13.43.84.14.44.74.84.955.15.30-2.5-4-5.7-3.5-2-123.5477.59.910.911.913.51311.996.541.50-2.5-5谢谢你的阅读v知识就是财富v丰富你的人生71、既然我已经踏上这条道路,那么,任何东西都不应妨碍我沿着这条路走下去。康德72、家庭成为快乐的种子在外也不致成为障碍物但在旅行之际却是夜间的伴侣。西塞罗73、坚持意志伟大的事业需要始终不渝的精神。伏尔泰74、路漫漫其修道远,吾将上下而求索。屈原75、内外相应,言行相称。韩非
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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