第数值数组及向量化运算ppt课件_第1页
第数值数组及向量化运算ppt课件_第2页
第数值数组及向量化运算ppt课件_第3页
第数值数组及向量化运算ppt课件_第4页
第数值数组及向量化运算ppt课件_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第3章章 数值数组及向量化运算数值数组及向量化运算教学目的教学重点教学内容教学目的教学目的 掌握数组的创建方法掌握数组的创建方法 掌握数组的标识与寻访掌握数组的标识与寻访 掌握数组的运算掌握数组的运算 了解了解“非数非数NaN和和“空数组空数组 掌握关系操作和逻辑操作掌握关系操作和逻辑操作教学重点教学重点 数组的创建方法数组的创建方法 数组的标识与寻访数组的标识与寻访 关系操作和逻辑操作关系操作和逻辑操作教学内容教学内容3.1 数值计算的特点和位置数值计算的特点和位置 3.2 一、二维数值数组的创建和寻访一、二维数值数组的创建和寻访3.3 数组运算和向量化编程数组运算和向量化编程3.4 “非

2、数非数NaN和和“空数组空数组3.5 关系操作和逻辑操作关系操作和逻辑操作3.1 数值计算的特点和位置数值计算的特点和位置u符号计算可以对包含变量字符,参数字符和数字的表达式进符号计算可以对包含变量字符,参数字符和数字的表达式进展推理,运算,并给出符号结果。展推理,运算,并给出符号结果。u缺陷:有很多问题无法解,有很多问题求解时间过长缺陷:有很多问题无法解,有很多问题求解时间过长 。syms t xft=t2*cos(t)sx=int(ft,t,0,x)ft =t2*cos(t)sx =x2*sin(x) - 2*sin(x) + 2*x*cos(x)符号计算解法:符号计算解法:dt=0.05

3、; t=0:dt:15; Ft=t.2.*cos(t);Sx=dt*cumtrapz(Ft); plot(t,Sx,.k,MarkerSize,12) xlabel(x),ylabel(Sx),grid on 数值计算解法:数值计算解法: ezplot(sx,0,15)例例 3.1-2 知知sin( )( )tf te求求40( )( )s xf t dt(1) 符号计算解法符号计算解法syms t;ft=exp(-sin(t);sx=int(ft, t, 0, 4)Warning: Explicit integral could not be found.sx =int(1/exp(sin(

4、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);3.2 数值数组的创建和寻访数值数组的创建和寻访3.2.1 一维数组的创建一维数组的创建3.2.2 二维数组的创建二维数组的创建3.2.3 二维数组元素的标识和寻访二维数组元素的标识和寻访3.2.4 数组操作技法综合数组操作技法综合(1) 冒号

5、生成法:冒号生成法: array=a: inc: b a-数组的第一个元素数组的第一个元素 inc-采样点之间的间隔采样点之间的间隔, 即步长即步长. 最后一最后一个元素不一定等于个元素不一定等于b,其大小为其大小为b=a +inc*fix(b-a)/inc); 步长可以省略步长可以省略, 默以为默以为1; inc可以取正数或负数可以取正数或负数, 但要留意当取正但要留意当取正时时,要保证要保证ba, 数组最后一个元素不超越数组最后一个元素不超越b, 取负时取负时b0abInc2) )留意留意: 数组的第一个元素为数组的第一个元素为x(1), 与与C言语中第一个元言语中第一个元素为素为x0不同

6、不同 第第3题题Matlab6.5 版符号限定假设对解方程根不起作用。版符号限定假设对解方程根不起作用。上机问题上机问题%23题题 解为一个求解变量解为一个求解变量clear, syms x y SS = dsolve(Dy*y/5+x/4=0,x)ezplot(subs(S(1),C3,1),-2,2 -2,2,1), hold onezplot(subs(S(2),C3,1),-2,2 -2,2,1)S = 1/2*(-5*x2+4*C1)(1/2) -1/2*(-5*x2+4*C1)(1/2)%25题题 解为两个求解变量解为两个求解变量S=dsolve(Df=3*f+4*g,Dg=-4*

7、f+3*g,f(0)=0,g(0)=1,x)S = f: 1x1 sym g: 1x1 sym S.f S.g exp(3*x)*sin(4*x), exp(3*x)*cos(4*x)disp(blanks(6), S.f, blanks(18),S.g)disp(S.f,S.g) 上机问题上机问题syms x y w t uz=x2+y+3*t+w3+u;findsym(z,8)findsym(expression,n) %当当n大于实践的根本变量数大于实践的根本变量数目时,按字母表顺序列出一切本符号变量;当目时,按字母表顺序列出一切本符号变量;当n小于等于小于等于时实践的根本变量数目时,按

8、与时实践的根本变量数目时,按与x间隔最近的顺序列出。间隔最近的顺序列出。symvar(expression,n) 多一个参数多一个参数n在在Matlab6.5中不中不能用。能用。ans = t, u, w, x, yans = x,y,w,u,tfindsym(z,5)ans = x,y,wfindsym(z,3)review(1) 冒号生成法:冒号生成法: array=a: inc: b 3.2.1 一维数组的创建和寻访一维数组的创建和寻访 1. 递增递增/递减一维数组的创建递减一维数组的创建:(2) 线性线性(或对数或对数)定点采样法定点采样法在设定的总点数下, 均匀采样生成一维行数组格式

9、为:x=linspace (a, b, n)(2) 运用运用MATLAB函数生成法:函数生成法:均匀分布随机数组均匀分布随机数组rand(1,n), 全全1数组数组ones(1,n)(1) 逐个元素输入法:逐个元素输入法: 2.其他类型一维数组的创建其他类型一维数组的创建:x=1,2,3,4,53.2.2 二维数组的创建二维数组的创建 创建二维数组与创建一维数组的方式类似。在创建二创建二维数组与创建一维数组的方式类似。在创建二维数组时,整个输入数组以方括号维数组时,整个输入数组以方括号 为其首尾。用逗为其首尾。用逗号或者空格区分同一行的不同元素,用分号或者回车号或者空格区分同一行的不同元素,用

10、分号或者回车Enter区分不同行。区分不同行。1.小规模数组的直接输入法小规模数组的直接输入法2.中规模数组的数组编辑器创建法中规模数组的数组编辑器创建法 3.中规模数组的中规模数组的M文件创建法文件创建法例3.2.4利用文件创建和保管数组1. 编写编写M文件并运转文件并运转AM=100,101,102;103,104,105;106,107,108,保管为文件名保管为文件名MyMatrix .m2. 在命令窗中输入在命令窗中输入MyMatrix3.2.2 二维数组的创建二维数组的创建4.利用利用MATLAB函数创建数组函数创建数组 指指 令令含含 义义指指 令令含含 义义diag产生对角形数

11、组产生对角形数组(二维以下二维以下) rand产生均匀分布随机数组产生均匀分布随机数组eye产生单位数组产生单位数组(二维以下二维以下)randn 产生正态分布随机数组产生正态分布随机数组magic 产生魔方数组产生魔方数组(二维以下二维以下)zeros产生全产生全0数组数组ones产生全产生全1数组数组【例【例3.2-5】规范数组产生的演示。】规范数组产生的演示。ones(2,4)ans = 1 1 1 1 1 1 1 1 randn(state,0) randn(2,3)ans = -0.4326 0.1253 -1.1465 -1.6656 0.2877 1.1909D=eye(3)D

12、= 1 0 0 0 1 0 0 0 1 diag(D)ans = 1 1 1 3.2.3 二维数组元素的标识和寻访二维数组元素的标识和寻访数组名数组名(行下标行下标m, 列下标列下标n)-数组的第数组的第m行行n列的元素列的元素.A=1,2,3; 4,5,6A(2,3)=61) 全下标标识全下标标识2) 单下标标识单下标标识只用一个下标来指定元素在数组中的位置将数组中一只用一个下标来指定元素在数组中的位置将数组中一切的元素按照从上到下切的元素按照从上到下(列列), 从左到右的方法从开场从左到右的方法从开场编号编号, 其编号就是单下标其编号就是单下标 A(4)=2 | 1 2 3 |A= | 4

13、 5 6 | | 7 8 9 |A(:)按单下标方式列出按单下标方式列出全部元素,组成列向量。全部元素,组成列向量。A(:)=1,4,7,2,5,8,3,6,9A = 1 2 3 4 5 63) 逻辑逻辑1标识法标识法A=1, 2, 3, 4, 5; L=logical(1, 0, 1, 0, 1)A(L)ans=1,3,5【例【例3.2-6】数组标识与寻访】数组标识与寻访A=zeros(2,6)A = 0 0 0 0 0 0 0 0 0 0 0 0A(:)=1:12A =1 3 5 7 9 11 2 4 6 8 10 12A(2,4)ans = 8A(8)ans = 8 A(:,1,3)an

14、s =1 5 2 6A(:,4:end)ans =7 9 11 8 10 12 A(2,1:2:5)=-1,-3,-5A =1 3 5 7 9 11 -1 4 -3 8 -5 12 B=A(1,2,2,2,1,3,5 )B =1 5 9 -1 -3 -5 -1 -3 -5 -1 -3 -5 L=A3L = 1 0 0 0 0 0 1 0 1 0 1 0A(L)=NaNA = NaN 3 5 7 9 11 NaN 4 NaN 8 NaN 12A(1,2,5,6)ans = 1 2 5 6 3.2.4 数组操作技法综合数组操作技法综合【例【例 3.2-7】数组操作函数】数组操作函数reshape,

15、 diag, repmat的用的用法;空阵法;空阵 删除子数组的用法。删除子数组的用法。a=1:8A=reshape(a,4,2)A=reshape(A,2,4)a = 1 2 3 4 5 6 7 8A = 1 5 2 6 3 7 4 8A = 1 3 5 7 2 4 6 8 D1=repmat(B,2,4) % D1 = 1 0 1 0 1 0 1 0 0 4 0 4 0 4 0 4 1 0 1 0 1 0 1 0 0 4 0 4 0 4 0 4 D1(1,3,: )= % 删除删除1,3行行 D1 = 0 4 0 4 0 4 0 4 0 4 0 4 0 4 0 4 b=diag(A)b =

16、 1 4B=diag(b)B = 1 0 0 4 3.2.4 数组构作技法综合数组构作技法综合【例【例3.2-8】函数】函数flipud, fliplr, rot90对数组的操作表达着对数组的操作表达着“矩阵变换。矩阵变换。A=reshape(1:9,3,3) A = 1 4 7 2 5 8 3 6 9 B=flipud(A)B = 3 6 9 2 5 8 1 4 7 C=fliplr(A) % C = 7 4 1 8 5 2 9 6 3 D=rot90(A,2) %逆时针旋逆时针旋转转D = 9 6 3 8 5 2 7 4 1 3.3 数组运算数组运算1. 函数关系数值计算模型的分类函数关系

17、数值计算模型的分类 个别的,无规律的数据集所执行的函数关系运算;个别的,无规律的数据集所执行的函数关系运算; 一组有规律数据需求反复所执行的函数关系运算;一组有规律数据需求反复所执行的函数关系运算; 一组有规律数据按矩阵运算法那么执行的函数关系运一组有规律数据按矩阵运算法那么执行的函数关系运算。算。3.3.1数组运算的由来和规那么数组运算的由来和规那么对普通编程,后两种运算程序包含一重或多重循环体。对普通编程,后两种运算程序包含一重或多重循环体。2. 提高程序执行性能的三大措施提高程序执行性能的三大措施JIT(just in time)-Accelerator; 数组运算;向量或矩阵数组运算;

18、向量或矩阵运算。运算。3.3.1数组运算的由来和规那么数组运算的由来和规那么3. 数组运算规那么数组运算规那么数组运算是指每个对应元素之间的运算,比如对应数组运算是指每个对应元素之间的运算,比如对应元素相加,相减,相乘,相除等,而矩阵运算那么元素相加,相减,相乘,相除等,而矩阵运算那么服从线性代数中的矩阵运算规那么服从线性代数中的矩阵运算规那么数组运算符是数组运算符是 .opr, opr运算符为运算符为+,-, *, /, , , 矩阵运算那么没有在操作符左边加矩阵运算那么没有在操作符左边加 . , matlab中矩中矩阵的运算是按照线性代数中的定义进展的。阵的运算是按照线性代数中的定义进展的

19、。详细的数组运算符意义见表详细的数组运算符意义见表3.3-1 l数组的加减法数组的加减法u数组加减法为数组元素的加减法,与矩阵加减数组加减法为数组元素的加减法,与矩阵加减法一样。利用运算符法一样。利用运算符“+和和“-实现该运算。实现该运算。需求留意的是相加或相减的两个数组必需有一需求留意的是相加或相减的两个数组必需有一样的维数,或者是数组与数值相加减。样的维数,或者是数组与数值相加减。l数组的乘除法数组的乘除法u数组乘除为元素的乘除,经过运算符数组乘除为元素的乘除,经过运算符“.*和和“./来来实现。运算时需求两个数组有一样的维数,或者数实现。运算时需求两个数组有一样的维数,或者数组与数值相

20、乘除。组与数值相乘除。l数组的乘方数组的乘方 数组乘方用符号数组乘方用符号“.实现。数组乘方运算以三种方实现。数组乘方运算以三种方式进展。式进展。 底为数组,指数为标量的方式。这种方式的结果是底为数组,指数为标量的方式。这种方式的结果是将数组的每个元素进展指数一样的乘方。前往的结将数组的每个元素进展指数一样的乘方。前往的结果为与底维数一样的数组,结果数组的每个元素为果为与底维数一样的数组,结果数组的每个元素为底中相应元素的乘方。底中相应元素的乘方。 底为标量,指数为数组的方式。该方式前往的结果底为标量,指数为数组的方式。该方式前往的结果为数组,维数与指数数组一样。结果数组的每个元为数组,维数与

21、指数数组一样。结果数组的每个元素为底以指数数组相应元素为指数做乘方的结果。素为底以指数数组相应元素为指数做乘方的结果。 底和指数都是数组的方式。此时两个数组需求有一底和指数都是数组的方式。此时两个数组需求有一样的维数。前往结果为一个数组,维数与前面两个样的维数。前往结果为一个数组,维数与前面两个数组一样,每个元素为底数数组和指数数组做乘方数组一样,每个元素为底数数组和指数数组做乘方的结果。的结果。函数函数 f (.) 的数组运算规那的数组运算规那么么函数数组运算规那么的定函数数组运算规那么的定义义 x11 x12 x1n x21 x22 x2n 对于(m x n)数组X =xij m x n

22、xm1 xm2 xmn 函数 f (.) 的数组运算规那么是指: f (X) = f (xij) m x n也就是对数组中每个元素都实施同样的操作名称名称含义含义名称名称含义含义名称名称含义含义acos反余弦反余弦asinh反双曲正弦反双曲正弦csch双曲余割双曲余割acosh反双曲余弦反双曲余弦atan反正切反正切sec正割正割acot反余切反余切atan2四象限反正切四象限反正切 sech双曲正割双曲正割acoth反双曲余切反双曲余切atanh反双曲正切反双曲正切sin正弦正弦acsc反余割反余割cos余弦余弦sinh双曲正弦双曲正弦acsch反双曲余割反双曲余割cosh双曲余弦双曲余弦t

23、an正切正切asec反正割反正割cot余切余切tanh双曲正切双曲正切asech反双曲正割反双曲正割coth双曲余切双曲余切asin反正弦反正弦csc余割余割 三角函数和双曲函数三角函数和双曲函数4. 数组运算符和数组运算函数数组运算符和数组运算函数指数函数名称 含义 名称含义名称含义exp指数(ex)log10常用对数pow2的幂log自然对数 log2以为底对数 sqrt平方根复数函数名称含义名称含义名称 含义abs模或绝对值 conj复数共轭 real复数实部angle相角(弧度)imag复数虚部坐标变换函数坐标变换函数名称名称含义含义名称名称含义含义cart2sph直角坐标变球坐标直角

24、坐标变球坐标pol2cart极坐标变直角坐标极坐标变直角坐标cart2pol直角坐标变极坐标直角坐标变极坐标sph2cart球坐标变直角坐标球坐标变直角坐标圆整函数与求余函数名称 含义名称含义ceil向圆整函数rem求余数fix向圆整函数round向最近整数圆整函数floor 向圆整函数sign符号函数 - (-1), + (1) 0 (0)mod模除求余clearvr=0.89, 1.20, 3.09, 4.27, 3.62, 7.71, 8.99, 7.92, 9.70, 10.41;ir=0.028, 0.040, 0.100, 0.145, 0.118, 0.258, 0.299, 0

25、.257, 0.308, 0.345; L=length(vr); for k=1:Lr(k)=vr(k)/ir(k); endsr=0;for k=1:Lsr=sr+r(k); endrm=sr/L非向量化程序3.3.2 数组运算与向量化编程数组运算与向量化编程向量化编程向量化编程r=vr./irrm=mean(r) 【例 3.3-1】欧姆定律: ,其中 r,u,i 分别是电阻 ( 欧姆 ) 、 电压伏特、电流安培。验证明验:据电阻两端施加的电压,丈量电阻中流过的电流,然后据测得的电压、电流计算平均电阻值。测得详细数据见程序。uri3.3.2 数组运算与向量化编程数组运算与向量化编程clea

26、rx=-5:0.1:5;y=(-2.5:0.1:2.5);N=length(x);M=length(y);for ii=1:M for jj=1:N Z0(ii,jj)=sin(abs(x(jj)*y(ii); endend 非向量化程序【例【例 3.3-2】用间距为】用间距为0.1的程度线和垂直线均匀分割的程度线和垂直线均匀分割 的矩形域,在一切程度线和垂直线交点上计算函的矩形域,在一切程度线和垂直线交点上计算函 数数y=sin|xy| 的值,并图示。的值,并图示。 2.5,2.5y 5,5,x X,Y=meshgrid(x,y); Z=sin(abs(X.*Y); 向量化程序norm(Z-

27、Z0)ans = 0 比较两个数组能否相等(2范数接近eps)surf(X,Y,Z)xlabel(x)ylabel(y)shading interpview(190,70) 绘制二元函数图形按按IEEE规定规定, 0/0, /, 0*等运算都会产生非数等运算都会产生非数, 在在matlab 中记为中记为nan.它具有以下性质:它具有以下性质:1) nan参与运算所得结果也是参与运算所得结果也是nan,即具有传送性,即具有传送性2) 非数没有大小概念,不能比较两个非数的大小非数没有大小概念,不能比较两个非数的大小功能:功能:真实记述真实记述0/0, / , 0* 运算的后果运算的后果; 防止能防

28、止能够因以上运算而呵斥的程序执行的中断够因以上运算而呵斥的程序执行的中断;在数据可视在数据可视化中化中,用来裁减图形用来裁减图形3.4 “非数和非数和“空数组空数组3.4.1 非数非数NaN【例【例3.4-1】非数的产生和性质演示】非数的产生和性质演示(1) 非数的产生非数的产生a=0/0, b=0*log(0), c=inf - inf(2) 非数的传送性非数的传送性0*a, sin (a);(3) 非数的属性判别非数的属性判别class (a), isnan (a)isnan-独一能正确判别非数的指令独一能正确判别非数的指令3.4.2“空数组空数组空数组的功能:空数组的功能:u空数组没参与

29、运算时空数组没参与运算时, ,计算结果中的空可以合理地解计算结果中的空可以合理地解释所得结果的含义释所得结果的含义( (如在某数组中寻觅满足一定条件的如在某数组中寻觅满足一定条件的数据数据, ,结果没有结果没有, ,得到空数组得到空数组, ,表示没有满足条件的元素表示没有满足条件的元素););a=1,2,3; f_array=find (a0)f_array = Empty matrix: 1-by-0u运用空数组对其他非空数组赋值运用空数组对其他非空数组赋值, ,可以改动数组的大可以改动数组的大小小, ,但不能改动数组的维数但不能改动数组的维数A=reshape(-4:5,2,5) A =

30、-4 -2 0 2 4 -3 -1 1 3 5 size(A)ans = 2 5A(:,2,4)= A = -4 0 4 -3 1 5 size(A)ans = 2 3ndims(A)ans = 2u运用空数组对其他非空数组赋值运用空数组对其他非空数组赋值, ,可以改动数组的大可以改动数组的大小小, ,但不能改动数组的维数但不能改动数组的维数A=rand(2,3,2,4);size(A)ans = 2 3 2 4ndims(A)ans = 4A(:, :,1,2 ,:)= A = Empty array: 2-by-3-by-0-by-4size(A)ans = 2 3 0 4ndims(A)

31、ans = 43.4.2“空数组空数组1创建创建 空空 数组的几种方法数组的几种方法a= b=ones(2,0),c=zeros(2,0),d=eye(2,0)f=rand(2,3,0,4); array3=1:-5;2空数组的属性空数组的属性【例【例3.4-3】关于】关于“空数组的算例。空数组的算例。class(a) isnumeric(a)isempty(a) %空数组的判空数组的判别别ans = doubleans = 1ans = 1 which andims(a)size(a)a is a variable.ans = 2ans = 0 0 3.5 关系操作和逻辑操作关系操作和逻辑操

32、作3.5.1 关系操作关系操作3.5.2 逻辑操作逻辑操作3.5.3 常用逻辑函数常用逻辑函数 matlab 的商定1) 在一切关系表达式和逻辑表达式中在一切关系表达式和逻辑表达式中,作为输入的任作为输入的任何非何非0数都被看作逻辑真数都被看作逻辑真,只需只需0才被以为是逻辑才被以为是逻辑假假.2) 一切关系表达式和逻辑表达式的计算结果一切关系表达式和逻辑表达式的计算结果,即输出即输出,是一个由是一个由0和作成的逻辑数组和作成的逻辑数组. 其中表示真其中表示真, 0表示假表示假.3) 逻辑数组是一种特殊的数值数组逻辑数组是一种特殊的数值数组,它表示着对事物它表示着对事物的判别结论的判别结论“真

33、与假真与假“3.5 关系操作和逻辑操作关系操作和逻辑操作3.5.1关系操作关系操作指令 含义指令 含义=大于等于大于=不等于阐明:阐明:1) 标量可以与任何维数的数组进展比较标量可以与任何维数的数组进展比较,比较在此标量比较在此标量和数组和数组 每个元素之间进展每个元素之间进展,因此比较结果为与被比较数因此比较结果为与被比较数组同维的数组组同维的数组.2) 数组进展比较时数组进展比较时,两数组必需是同维的两数组必需是同维的, 结果也得到结果也得到一个同维的数组一个同维的数组 | 2, 4, 6 | | 1, 3, 5 |A=| 3, 5, 7 | B= | 4, 6, 8 | | 1, 8,

34、9 | | 2, 7, 9 | |1, 1, 1| |0, 0, 1|AB= |0, 0, 0| A5= |0, 0, 1| |0, 1, 0| |0, 1, 1|A=2 4 6;3 5 7;1 8 9find(A5) = ans=6,7,8,9 % 得到数组下标得到数组下标,单下标单下标A(find(A5) = ans= 8,6,7,9A(find(A5)=5; % A(A5)=5A = 2 4 5 3 5 5 1 5 5【例【例3.5-2】关系运算运用。求近似极限】关系运算运用。求近似极限,修补图形缺口修补图形缺口sin (t)/t, t-2,2t=-2*pi : pi/10 : 2*pi

35、;y=sin(t)./t; %在在t=0处产生非数处产生非数tt=t+(t=0)*eps ; % 处置分母为的处置分母为的点点yy=sin(tt)./tt;subplot(2,1, 1),plot(t,y);axis(-7,7,-0.5,1.2);xlabel(t),ylabel(y),title(残缺图形残缺图形);subplot(2,1, 2),plot(tt,yy);axis(-7,7,-0.5,1.2);xlabel (t), ylabel(yy), title(完好图形完好图形)tt=t; tt(find(tt=0)=eps;tt(tt=0)=eps;3.5.2 逻辑操作逻辑操作阐明

36、:阐明:1) 标量可以与任何维的数组运算标量可以与任何维的数组运算.逻辑运算在标量与数逻辑运算在标量与数组每个元素间进展组每个元素间进展, 因此运算结果是与参与运算的数组因此运算结果是与参与运算的数组维数一样的数组维数一样的数组.2) 数组之间也可以进展逻辑运算,参与运算的必需维数组之间也可以进展逻辑运算,参与运算的必需维数一样数一样.此时运算在两数组同位置上的元素之间进展此时运算在两数组同位置上的元素之间进展.因因此运算结果是与参与运算的数组维数一样的数组此运算结果是与参与运算的数组维数一样的数组指令指令 &| xor含义含义与与或或非非异或异或【例【例3.5-3】逻辑操作和关系操作

37、。本例演示:逻辑、关系】逻辑操作和关系操作。本例演示:逻辑、关系操作的组合;操作的组合;xor的作用。的作用。%1 A=-2,-1,0,0,1,2,3L1=(A1)L2=(A0)&(A2)%2A,B=0,-1,1,0,1,-2,-3C=xor(A,B)A = -2 -1 0 0 1 2 3L1 = 1 1 1 1 1 0 0L2 = 0 0 0 0 1 0 0A = -2 -1 0 0 1 2 3B = 0 -1 1 0 1 -2 -3C = 1 0 1 0 0 0 0 逻辑操作中任何非零数都看作逻辑逻辑操作中任何非零数都看作逻辑1sin (sin0)0 (sin0)ttzt0, pi

38、, 2pi, 3pit2pi, z=sin(t)*1; 否那么否那么 z=sin(t)*0 ; z=sin(t)*(t2*pi) 【例【例3.5-43.5-4】试绘制如图】试绘制如图3.5-23.5-2最下那幅子图所示的最下那幅子图所示的“正正弦波弦波y=sint (t0,3 )y=sint (t0,3 )的削顶半波整流波形,削的削顶半波整流波形,削顶发生在每个周期的顶发生在每个周期的600,1200600,1200之间。之间。t=linspace(0, 3*pi, 500); y=sin(t);z1=(t2*pi).*y; %半波整流波形半波整流波形w=(tpi/3&t7*pi/3&

39、amp;t8*pi/3); %削顶区间置削顶区间置1,其他,其他为零为零wn=w; %削顶区间置零,其他为削顶区间置零,其他为1z2=w*sin(pi/3)+wn.*z1; %削顶半波整流波形削顶半波整流波形subplot(4,1,1),plot(t,y, :r ), axis(0 10 -1.5 1.5); ylabel(y);subplot(4,1,2),plot(t,z1, :r ), axis(0 10 -0.2 1.5); ylabel(z1);subplot(4,1,3),plot(t,wn, :r ), axis(0 10 -0.2 1.5); ylabel(wn);subplo

40、t(4,1,4),plot(t,z2,-b), axis(0 10 -0.2 1.5); ylabel(z2); 3.5.2 常用逻辑函数常用逻辑函数 指令指令 含含 义义指指 令令 含含 义义all (A)A中元素中元素全为非全为非0时为时为1, 否则否则0isfinite(x)X中有限大小元素的位置取中有限大小元素的位置取1,其余取其余取0any(A)A中中有非有非0则为则为1isempty(x)X为空,则为为空,则为1false创建全创建全0逻辑数组逻辑数组isspace(x)空格元素处取空格元素处取1,其余取其余取0true创建全创建全1逻辑数组逻辑数组isletter(x)X中英文字母处取中英文字母处取1,其余为其余为0logical创建逻辑数组创建逻辑数组, 1对应输入对应输入数组中非数组中非0元素元素, 其余为其余为0isprime(x)质数元素位置处取质数元素位置处取1,其余取,其余取0isreal(x) 实数元素位置处取实数元

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论