版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
n个元素排成一行,又称为行向量(rowvector)常被看作为1Xn矩阵(二维数组)x=21340.2347.891…6.555…一维编号x(1)x(2)x(3)…x(k)…二维编号x(1,1)x(1,2)x(1,3)…x(1,k)…1、行数组一、一维数组简介第1页/共66页第一页,共67页。
n个元素排成一列,又称为列向量(columnvector),常看作为nX1矩阵(二维数组)在Matlab中提到向量,一般都是指的列向量2、列数组x2134x(1)x(1,1)0.2346x(2)x(2,1)………6.555x(k)x(k,1)………一维编号二维编号第2页/共66页第二页,共67页。一个数,称为标量,在Matlab中看作为1X1矩阵(二维数组)3、标量(scalar)2134Matlab中,标量和向量一般用小写字母表示a=在matlab中,使用a(1)和a(1,1)都可以访问变量a第3页/共66页第三页,共67页。整个数组放在方括号里行数组元素用空格或逗号分隔
x=[2,pi/2,sqrt(3),3+5i]列数组元素用分号分隔,分号起换行
y=[2;pi;3/4;j]标点符号一定要在英文状态下输入二、创建一维数值数组1、用方括号[]创建一维数组第4页/共66页第四页,共67页。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)再执行如下赋值语句:第5页/共66页第五页,共67页。x=[]
方括号内无字符,或只包含空格,则生成空数组。此时在matlab内部生成一个double类型的变量x,其内容为空,占用0字节。空数组在进行数组并置操作(二个小数组合并为一个大数组)时,经常用到。3、用[]生成空数组x=[] a=[2,4]b=[3,
5]x=[x,a]x=[x,b](1)执行如下赋值语句:(2)然后执行如下赋值语句:此时:x=?第6页/共66页第六页,共67页。4、用冒号:创建一维数组x=a:bx=a:inc:b生成如下数组x=[a,a+inc,a+2*inc,…]
a,b必须为实数,若未提供inc的数值,则
inc=1
a是数组x中的第一个元素,b不一定是数组x的最后一个元素。若inc取的不合适,可能会生成空数组。x=1:10
y=10:-2:-10
z=[1:2:99,2:2:100]
w=2:3:-10x=?y=?z=?w=?第7页/共66页第七页,共67页。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=?
第8页/共66页第八页,共67页。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]第9页/共66页第九页,共67页。三、一维数组的访问和赋值b=x(end)
end是数组x的最后一个元素的下标
引用数组x中的最后一个元素,将其赋值给变量bc=x(8)
会出现什么结果?1、引用一维数组中的单个元素Matlab中数组元素的下标从1开始x=1:5k=2a=x(k) 引用数组x中的第k个元素,将其赋值给变量a第10页/共66页第十页,共67页。2、一维数组中单个元素的赋值x=1:5a=1.5k=3x(k)=0
将0赋值给数组x中的第k个元素x(end)=a
将a赋值给数组x中的最后一个元素x(8)=6.5会出现什么结果?第11页/共66页第十一页,共67页。3、引用一维数组中的子数组
引用一维数组x中的第2、5、9个元素,将其赋值给变量a x=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,9]a=x(s)第12页/共66页第十二页,共67页。4、给一维数组中的子数组赋值将2、7分别赋值给x的第1、4个元素x=linspace(1,5)x([1,4])=[2,7]x=linspace(1,5)s=[1,4]a=[2,7]x(s)=a第13页/共66页第十三页,共67页。四、数组运算数组运算是Matlab软件定义的运算规则,其目的是为了数据管理方便、操作简单、指令形式自然和执行计算的有效。无论在数组上施加什么运算(加减乘除或函数),总认定那种运算对被运算数组中的每个元素(Element)进行运算。第14页/共66页第十四页,共67页。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)’第15页/共66页第十五页,共67页。(1)两个一维数组之间的数学运算x+y:加,对应位置的数组元素相加x-y:减,对应位置的数组元素相减x.*y:点乘,对应位置的数组元素相乘x./y:右点除,对应位置的数组元素相除x.\y:左点除x.^y:点幂,对应位置的数组元素做幂运算一维数组x、y维数相同时,可以进行如下如下的数组运算:运算结果为与x、y同维的数组2、一维数组的数学运算第16页/共66页第十六页,共67页。(2)一维数组与标量之间的数学运算x+c:x的每个元素加cx-c:x的每个元素减cx.*c或x*c:x的每个元素乘c,x./c或x/c:x的每个元素除以cx.\c或x\c:c除以x的每个元素x.^c:点幂,x的每个元素做幂运算c.^x:点幂,c做幂运算运算结果为与x同维的数组x为一维数组,c为一个数(标量),x和c之间可以进行:第17页/共66页第十七页,共67页。练习:试写出下列matlab语句的输出结果,并在matlab中进行验证。a=[1,
1,1]b=[1,0,0]c=[0,0,0]d=(a+b).*(a-b)e=(d+1)+(d-1)*if=e.’./e’+e.’.\e’g=b.^d+d.^b第18页/共66页第十八页,共67页。关系运算符说明举例返回结果<小于a<b[1,0,
0,0]<=小于等于a<=b[1,1,0,1]>大于a>b[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、一维数组的关系运算第19页/共66页第十九页,共67页。关系运算符说明举例返回结果<小于a<b[1,0,0,0]<=小于等于a<=b[1,1,0,0]>大于a>b[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组成的“逻辑数组”。
第20页/共66页第二十页,共67页。(3)关系运算中的注意事项 比较两个浮点数是否相等时需要注意,由于浮点数的存储时的误差的存在,在程序设计中要避免直接比较两个浮点数是否相等,而是采用大于、小于的比较运算将待确定值限制在一个满足需要的区间之内。 比较两个数是否相等的关系运算符是“==”,单个的等号“=”是变量赋值符号。 不等于的关系运算符是“~=”,不要与C语言的不等于符号“!=”混淆。
3<x<7这样的数学表达式必须用逻辑“与”运算才能正确表示。第21页/共66页第二十一页,共67页。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、一维数组的逻辑运算第22页/共66页第二十二页,共67页。5、逻辑数组用作“
逻辑索引
”
逻辑索引:通过逻辑数组L中“逻辑1”所在的位置,指出数组A中元素的的位置,从而可以对A数组中的元素(子数组)进行访问或赋值。A=1:10L=logical([0101])A(L) L的元素个数应等于或小于A的元素个数,一般情况下,L应是与A同维的逻辑数组第23页/共66页第二十三页,共67页。6、函数作用在数组上的运算规则 Matlab中的很多函数都可以直接以数组作为输入参数,函数会作用在数组的每个元素上。输入为行数组,则输出也为行数组输入为列数组,则输出也为列数组第24页/共66页第二十四页,共67页。关系运算举例在100,103,106,109,...,148,151这些整数中,能被7整除的数有哪些?A=100:3:151B=rem(A,7)L=B==0r=A(L)第25页/共66页第二十五页,共67页。逻辑运算举例100以内的哪些正整数满足:0.7<sin(n)<0.75?n=1:100L1=sin(n)>0.7L2=sin(n)<0.75L=L1&L2r=n(L)第26页/共66页第二十六页,共67页。五、与一维数组相关的一些常用函数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为行或列):第27页/共66页第二十七页,共67页。sort(x)sort(x,’descend’)[y,ix]=sort(x)返回x中的元素按升序排序的向量返回x中的元素按降序排序的向量ix为与x同维的数组,其中存储的是排序后各个元素原先在数组x中的位置length(x) 返回数组的长度(行数或列数的较大值)numel(x) 返回数组元素的个数第28页/共66页第二十八页,共67页。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]
第29页/共66页第二十九页,共67页。logical(x)输入x为一维实数数组,返回一个与x同维的逻辑数组,当x中的元素为非零元素时,y中对应的位置返回逻辑1,否则返回逻辑0。注意:x中的元素不能为复数或NaNall(x)x为一维数组(忽略其中的NaN),若其元素全部为真,则返回真,否则返回假。(返回一个逻辑数)any(x)x为一维数组(忽略其中的NaN),若其元素不全部为假,则返回真,否则返回假。(返回一个逻辑数)第30页/共66页第三十页,共67页。六、一维数组在二维绘图中的应用
x,y为同维的一维数组,二维绘图函数plot(x,y)的绘图原理:分别以x,y对应位置的元素为横坐标和纵坐标,得到n个数据点,描点,然后依次将第1,2,…,n点连线,绘制出二维图形。一维数组xx1x2…xn一维数组yy1y2…yn数据点(x1,y1)第1点(x2,y2)第2点…(xn,yn)第n点第31页/共66页第三十一页,共67页。x=0:0.1:10*piy=sin(2*x).*cos(x/2)plot(x,y)
数组乘法x00.10.2…sin(2x)00.19870.3894…cos(x/2)10.99880.9950…y00.19840.3875…第32页/共66页第三十二页,共67页。第33页/共66页第三十三页,共67页。七、一维数组在向量运算中的应用第34页/共66页第三十四页,共67页。1、向量的模(长度)a=[4,3,1]d=sqrt(sum(a.*a))或:
d=sqrt(sum(a.^2))第35页/共66页第三十五页,共67页。2、两点之间的距离a=[4,3,1]b=[5,2,3]AB=sqrt(sum((a-b).^2))第36页/共66页第三十六页,共67页。3、向量的方向角与方向余弦,单位向量a=[4,3,1]d=sqrt(sum(a.^2))e0=a./d第37页/共66页第三十七页,共67页。4、向量的线性运算a=[4,3,1]b=[5,2,3]c=1.6直接利用matlab的数组运算规则即可进行运算p=a+bs=a–bd=c*a第38页/共66页第三十八页,共67页。5、两向量的数量积(内积/点积/点乘)=dot(a,b)=sqrt(dot(a,a))Matlab中提供了dot()
函数实现两向量的数量积第39页/共66页第三十九页,共67页。6、两个向量之间的夹角tmp=dot(a,b)/sqrt(dot(a,a))/sqrt(dot(b,b))theta=acos(tmp)第40页/共66页第四十页,共67页。7、两向量的向量积(叉乘)=cross(a,b)
Matlab中提供了cross()
函数实现两向量的向量积第41页/共66页第四十一页,共67页。8、向量的混合积:=dot(cross(a,b),c)第42页/共66页第四十二页,共67页。上机练习:第43页/共66页第四十三页,共67页。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)为顶点的四面体的体积。第44页/共66页第四十四页,共67页。八、一维数组在一元多项式运算中的应用借助matlab提供的函数,处理多项式是一件非常简单的事情,很容易对多项式进行积分、微分以及求根的操作。 一元多项式在代数中占有非常重要的地位。在实际应用中如对实验数据的插值、微商和曲线拟合等,都要大量用到多项式;在矩阵分析时,也要用到一元多项式的概念。多项式函数是形式最简单的函数,也是最容易计算的函数,从理论上讲,它可以表示绝大多数复杂函数。在许多计算机的计算和编程中,很多函数值如sin(x),cos(x)等的计算都是先将函数进行Tailor展开为多项式进行逼近计算的,并且都能达到很高的精度。第45页/共66页第四十五页,共67页。 在matlab中,一个一元多项式用一个行向量来表示的,向量元素为多项式系数的降幂排列,其中最后一个元素代表多项式中的0幂项。1、多项式的表示和创建p=[1,-12,0,25,116]第46页/共66页第四十六页,共67页。2、多项式的符号表示poly2sym()把系数向量表示的多项式转为符号表示poly2sym(p) 用默认字符’x’来表示多项式的变量poly2sym(p,’v’) 用字符‘v’来表示多项式的便量p=[1,-12,0,25,116]px=poly2sym(p)pt=poly2sym(p,’t’)第47页/共66页第四十七页,共67页。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可以是标量,或数值数组第48页/共66页第四十八页,共67页。4、求多项式的根r=roots(p) 此函数返回多项式p的根组成的向量多项式和多项式的根都是用向量表示的,为加以区别,多项式的根表示成列向量。 p=[1,-12,0,25,116] r=roots(p)对于系数为实数的多项式,如果其根出现复数,则复数必是成对出现的。第49页/共66页第四十九页,共67页。5、由根创建相应的多项式r=[1;2;-1;3;7]p=poly(r)p=poly(r)
r是一个向量,构造一个多项式,其根为r
由于matlab在进行数据处理时存在截断误差,因此,poly函数的返回值有可能在该出现0的位置出现了一个非常接近0的数,有时还会使某些系数带有一个很小的虚部。因此建议对poly函数的输出结果再进行一次处理,从而消除有可能出现的数据错误。例如,可以通过比较将绝对值极小的数强制置0,或利用real函数将实部从结果中提取出来,取消错误虚部的影响。由根构造多项式时,所得到的多项式的第一项为1第50页/共66页第五十页,共67页。练习第51页/共66页第五十一页,共67页。6、多项式的加法和减法当两个多项式的阶次不同时,其系数向量的长度也不同,这时需要先将低阶多项式的系数向量前边补上足够的0,以便使它和高阶多项式具有相同的长度,然后再执行加法(减法)运算。Matlab没有专门的函数执行多项式加法(减法)如果两个多项式的阶次相同,其系数向量的长度相等,多项式的加法就是将两个多项式向量直接相加(相减)。第52页/共66页第五十二页,共67页。7、多项式的乘法y1=[1,2,3,4]y2=[1,4,9,16]y=conv(y1,y2)y=poly2sym(y)w=conv(u,v) 此函数返回多项式u和v的乘积多项式的乘法就是多项式系数向量之间的卷积(convolution)如果要执行多个多项式之间的乘法运算,需要重复使用conv()函数第53页/共66页第五十三页,共67页。第54页/共66页第五十四页,共67页。用matlab的conv()函数求出的是具体的双精度数值数值,不是解析表达式。练习:利用多项式乘法完成下面的计算第55页/共66页第五十五页,共67页。8、多项式的除法[q,r]=deconv(b,a) 余数通常都与除数和被除数中较长的那个向量等长,因此r的前面一般有若干个0 此函数表示多项式b除以多项式a得到商多项式q和余数多项式r,如果r的元素全部为0,则表示多项式b可以整除多项式a。q:存储b/a的商多项式,r:存储b/a的余数多项式第56页/共66页第五十六页,共67页。9、多项式的微分(求导)polyder() 多项式微分k=polyder(p) 求多项式p的微分多项式k=polyder(a,b) 求axb的微分[q,d]=polyder(b,a):求有理分式b/a的微分
q:分子多项式
d:分母多项式第57页/共66页第五十七页,共67页。10、多项式的积分 p=[1,6,20,48,69,72,44] h=polyder(p) q=polyint(h,44)q=polyint(p,k) 对多项式p积分,k为积分常数q=polyint(p) 对多项式p积分,积分常数为0第58页/共66页第五十八页,共67页。11、部分分式展开(留数计算)[r,p,k]
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 同伴交往能力培养的心理机制考点试卷
- 2026广东佛山市南海区丹灶中心幼儿园招聘1人备考题库有完整答案详解
- 2026黑龙江牡丹江市穆棱市特聘农技员招募8人备考题库含答案详解(模拟题)
- 2026成都环境投资集团有限公司下属子公司招聘技术管理岗等岗位42人备考题库附答案详解(综合题)
- 2026新疆新星人才发展有限公司代新疆红星建设工程(集团)有限公司招聘5人备考题库含答案详解(完整版)
- 2026山东滨州市招聘硕博士高层次人才129人备考题库附答案详解(培优b卷)
- 2026年青山湖区住房和城乡建设局下属事业单位面向社会公开招聘工作人员备考题库及答案详解(夺冠)
- 2026银川市殡仪馆招聘工作人员笔试加分有关事项备考题库及答案详解(基础+提升)
- 2026河南开封市宋城文化产业发展有限公司招聘1人备考题库含答案详解(基础题)
- 2026湖南第一师范学院招聘非事业编制人员3人备考题库及答案详解(夺冠系列)
- 2026年检验检测机构管理考试试卷及答案
- 2026年潍坊市疾病预防控制中心校园招聘考试真题及答案
- 《中职生劳动教育》中等职业院校公共素质课全套教学课件
- 2025年东营职业学院教师招聘考试真题及答案
- 《生产安全事故分类与编码》27种事故类型现场处置卡课件
- 动火作业监理实施细则
- 2025年大理州工会笔试题目及答案
- 高中地理人教版选择性必修二4.4 国际合作课件(32张)
- 2026年《必背60题》京东TET管培生综合方向高频面试题包含详细解答
- 档案工作纳入考核制度
- 《JBT9187-1999 焊接滚轮架》(2026年)实施指南
评论
0/150
提交评论