matlab数值数组及向量化运算word资料12页

上传人:汽*** 文档编号:548375782 上传时间:2023-03-28 格式:DOCX 页数:13 大小:119.33KB
返回 下载 相关 举报
matlab数值数组及向量化运算word资料12页_第1页
第1页 / 共13页
matlab数值数组及向量化运算word资料12页_第2页
第2页 / 共13页
matlab数值数组及向量化运算word资料12页_第3页
第3页 / 共13页
matlab数值数组及向量化运算word资料12页_第4页
第4页 / 共13页
matlab数值数组及向量化运算word资料12页_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《matlab数值数组及向量化运算word资料12页》由会员分享,可在线阅读,更多相关《matlab数值数组及向量化运算word资料12页(13页珍藏版)》请在金锄头文库上搜索。

1、第2章数值数组及向量化运算数值数组(Numeric Array)和数组运算(Array Operations)始终是MATLAB的核心内容。本章教学内容:数组浮点算法的特点;一、二维数值数组的创建和寻访;常用标准数 组生成函数和数组构作技法;数组运算和向量化编程;实现数组运算的基本函数;关系和逻 辑操作。2.1数值计算的特点和地位【例 2.1-1】已知 f (t) = t2cost,求s(x) = f (t) dt。0(1) 符号计算解法syms t x%定义符号变量ft=t2*cos(t) sx=int(ft,t,0,x) ft = t2*cos(t) sx = x2*sin(x)-2*si

2、n(x)+2*x*cos(x)(2) 数值计算解法 dt=0.05; t=0:dt:5; Ft=t.2.*cos(t); Sx=dt*cumtrapz(Ft); t(end-4:end) Sx(end-4:end)%取一些离散点%梯形法求定积分%end表示最后一个元素%Sx的最后5个元素plot(t,Sx,.k,MarkerSize,12)xlabel(x),ylabel(Sx),grid on ans = 4.80004.85004.90004.95005.0000ans =-20.1144-19.9833 -19.7907 -19.5345 -19.2131图2.1-1在区间0, 5采样点

3、上算得的定积分值第1页【例 2.1-2 已知 f () = e一而(),求心)二4f (t) d。0本例演示:被积函数没有“封闭解析表达式”,符号计算无法解题!(1)符号计算解法syms t xft=exp(-sin(t)sx=int(ft,t,0,4)ft =exp(-sin(t)Warning: Explicit integral could not be found. In sym.int at 58 sx = int(exp(-sin(t),t = 0 . 4) (2)数值计算解法dt=0.05;t=0:dt:4;Ft=exp(-sin(t); Sx=dt*cumtrapz(Ft);

4、Sx(end) plot(t,Ft,*r,MarkerSize,4) hold on plot(t,Sx,.k,MarkerSize,15) hold off xlabel(x) legend(Ft,Sx) ans = 3.0632小结:(1) 符号计算长处一一可以对包含变量字符、参数字符和数字的表达式进行推理、运算,并给出符号结 果,与高等数学中的解析式比较接近;符号计算的短处一一很多问题无解或求解时间过长。(2) 数值计算在确定一组自变量采样点基础上,执行数值计算的表达式在已知的数值点上进行计算。它适 用范围比符号计算广,以有限的精度表现有限时间和范围内的函数关系。2.2数值数组的创建和寻

5、访MATLAB把数组看作存储和运算的基本单元,而标量数据看作(1X1)的数组。2.2.1 一维数组的创建1. 递增/减型一维数组的创建数组元素值的大小按递增或递减的次序排列,数组元素之间的“差”是“确定的”, 即“等步长”。(1) “冒号”生成法x=a : inc : b ; a一数组的第一个元素;inc步长,默认值为1;最后一个元素小于等于b。(2) 线性(或对数)定点法x=linspace(a, b, n);产生线性等间隔(1Xn)行数组,等价于 x=a : (b-a)/(n-1) : b ;x=logspace(a, b, n);产生对数等间隔(1Xn)行数组,n一一维数组的长度。(线性

6、等分向量)linspace=linear space linear 线性的 space 间隔2. 通用型一维数组的创建利用函数生成特殊形式数组。【例2.2-1】一维数组的常用创建方法举例。a1=1:6a2=0:pi/4:pia3=1:-0.1:0a1 =1 23456a2 =00.78541.57082.35623.1416a3 =Columns 1through 61.00000.90000.80000.70000.60000.5000Columns 7through 110.40000.30000.20000.10000b1=linspace(0,pi,4)b2=logspace(0,3,

7、4)b1 =01.04722.09443.1416b2 =1101001000c1=2 pi/2sqrt(3)3+5ic1 =Columns 1through 32.00001.57081.7321Column 43.0000 + 5.0000irand(state,0) c2=rand(1,5)%均匀随机数组c2 =0.95010.23110.60680.48600.89132.2.2二维数组的创建1. 小规模数组的直接输入法【例2.2-2】在MATLAB环境下,用下面三条指令创建二维数组C。a=2.7358; b=33/79;C=1,2*a+i*b,b*sqrt(a);sin(pi/4),

8、a+5*b,3.5+iC =1.00005.4716 + 0.4177i0.69090.70714.82443.5000 + 1.0000i数组的三个要素:括号:;逗号或空格;分号或回车键。2. 中规模数组的数组编辑器创建法【例2.2-3】根据现有数据创建一个(3 8)的数组。图2.2-1利用数组编辑器创建中规模数组3. 中规模数组的M文件创建法【例2.2-4】创建和保存数组AM的MyMatrix.m文件。(1) 打开文件编辑调试器,并在空白填写框中输入所需数组(见图2.2-2)。(2) 在文件的首行,编写文件名和简短说明,以便查阅(见图2.2-2)。(3) 保存此文件,并且文件起名为MyMa

9、trix.m。(4) 以后只要在MATLAB指令窗中,运行MyMatrix.m文件,数组AM就会自动生成于MATLAB内存 中。图2.2-2利用M文件创建数组4. 利用MATLAB函数创建数组【例2.2-5】标准数组产生的演示。ones(2,4)%产生全1元素数组zeros 产生全0元素数组ans =11111111randn(state,0)%产生正态分布随机数组;rand 产生均匀分布随机数组randn(2,3)ans =-0.43260.1253-1.1465-1.66560.28771.1909D=eye(3)%产生单位数组D =100010001diag(D)%产生对角数组ans =

10、1diag(diag(D) ans =100010001randsrc(3,20,-3,-1,1,3,1) %在指定字符集生成均匀随机数组;random 生成各种分布随机数组 ans =Columns1 through10313-1-33-3-3-131313-1111113-1-3-11-13-1-11Columns11through20-1-1-311-33-113113-1-1-3-1-11-31-1-33-1-13-1332.2.3二维数组元素的标识和寻访冒号的使用;end的作用。【例2.2-6】本例演示:数组元素及子数组的各种标识和寻访格式;A=zeros(2,6)A(:)=1:12

11、A =000000000000A =135791124681012A(2,4)A(8)ans =8ans =8A(:,1,3) A(1,2,5,6)ans =1 52 6ans =1256A(:,4:end)ans =7 9118 1012A(2,1:2:5) = -1,-3,-5A =1357911-14-38-512B=A(1,2,2,2,1,3,5)B =159-1-3-5-1-3-5-1-3-5L=A3A(L)=NaNL =100000101010A =NaN357911NaN4NaN8NaN12格式使用说明全下标法A(r,c)A的r行c列上元素A(r,:)A的r行全部列元素A(:,c

12、)A的c列全部行兀素单下标法A(:)“单下标全元素”,由A的各列按自左到右次序,首尾相连生成的“一维”数组A(s)“单下标”寻访,生成s指定的“一维”数组,s行数组(列数组),则A (s) 就是长度相同的行数组(列数组)逻辑标识 法A(L)“逻辑1”寻访,由与A同样大小的“逻辑数组” L中的“ 1”元素选出A的对应 元素2.2.4数组构作技法综合【例2.2-7】数组操作函数reshape, diag, repmat的用法;空阵删除子数组的用法 a=1:8A=reshape(a,4,2)%在总元素不变的前提下,改变数组的行数或列数A=reshape(A,2,4) a =12 3 4 5 6 78A =1 52 63 74 812b=diag(A)B=diag(b)b =14B =10D1=repmat(B,2,4)%按指定的行数2、列数4,把B作为模块铺放形成更大维数的数组D1 =10101010040404041010101004040404D1(1,3,:)=

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号