教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 专业资料 >

第三章 数值数组及向量化运算(matlab基础教程)

来源:网络收集 时间:2026-05-18
导读: 第3章 数值数组及向量化运算 数值数组(Numeric Array)和数组运算(Array Operations)始终是MATLAB的核心内容。本书从第3章起,全部注意力将集中于数值数组及其运算。 本章系统阐述:数组浮点算法的特点;一、二维数值数组的创建和寻访;数组运算和向量化

第3章 数值数组及向量化运算

数值数组(Numeric Array)和数组运算(Array Operations)始终是MATLAB的核心内容。本书从第3章起,全部注意力将集中于数值数组及其运算。 本章系统阐述:数组浮点算法的特点;一、二维数值数组的创建和寻访;数组运算和向量化编程;实现数组运算的基本函数;常用标准数组生成函数和数组构作技法;非数NaN、“空”数组概念和应用;关系和逻辑操作。

3.1 数值计算的特点和地位

【例3.1-1】已知f(t) t2cost,求s(x) (1)符号计算解法

syms t x ft=t^2*cos(t) sx=int(ft,t,0,x) ft =

t^2*cos(t) sx =

x^2*sin(x)-2*sin(x)+2*x*cos(x)

x

f(t) dt。

(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)

plot(t,Sx,'.k','MarkerSize',12) xlabel('x'),ylabel('Sx'),grid on

ans =

4.8000 4.8500 4.9000 4.9500 5.0000

ans =

-20.1144 -19.9833 -19.7907 -19.5345 -19.2131

图 3.1-1 在区间[0, 5]采样点上算得的定积分值

【例3.1-2】已知

f(t) e sin(t),求s(x) 0f(t) dt。

4

(1)符号计算解法

syms t x

ft=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); 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

图 3.1-2 在区间[0, 4]中间的被积函数及其原函数的离散计算结果

3.2

3.2.1 一 二

数值数组的创建和寻访

一维数组的创建 递增/减型一维数组的创建 通用型一维数组的创建

【例3.2-1】一维数组的常用创建方法举例。

a1=1:6 a2=0:pi/4:pi a3=1:-0.1:0 a1 =

1 2 3 4 5 6 a2 =

0 0.7854 1.5708 2.3562 3.1416

a3 =

Columns 1 through 6

1.0000 0.9000 0.8000 0.7000 0.6000 0.5000 Columns 7 through 11

0.4000 0.3000 0.2000 0.1000 0

b1=linspace(0,pi,4) b2=logspace(0,3,4) b1 =

0 1.0472 2.0944 3.1416 b2 =

1 10 100 1000

c1=[2 pi/2 sqrt(3) 3+5i] c1 =

Columns 1 through 3

2.0000 1.5708 1.7321 Column 4

3.0000 + 5.0000i

rand('state',0) c2=rand(1,5) c2 =

0.9501 0.2311 0.6068 0.4860 0.8913

3.2.2 一

二维数组的创建 小规模数组的直接输入法

【例3.2-2】在MATLAB环境下,用下面三条指令创建二维数组C。

a=2.7358; b=33/79;

C=[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i] C =

1.0000 5.4716 + 0.4177i 0.6909 0.7071 4.8244 3.5000 + 1.0000i

二 中规模数组的数组编辑器创建法

【例3.2-3】根据现有数据创建一个(3 8)的数组。

图3.2-1 利用数组编辑器创建中规模数组

三 中规模数组的M文件创建法

【例3.2-4】创建和保存数组 AM的 MyMatrix.m 文件。

(1) 打开文件编辑调试器,并在空白填写框中输入所需数组(见图3.2-2)。

(2) 最好,在文件的首行,编写文件名和简短说明,以便查阅(见图3.2-2)。 (3) 保存此文件,并且文件起名为 MyMatrix.m 。

(4) 以后只要在MATLAB指令窗中,运行 MyMatrix.m文件 ,数组 AM 就会自动生成

于 MATLAB内存中。

图3.2-2 利用M文件创建数组

四 利用MATLAB函数创建数组

【例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.1909

D=eye(3) D =

1 0 0 0 1 0 0 0 1

diag(D) ans = 1 1 1

diag(diag(D)) ans =

1 0 0 0 1 0 0 0 1

randsrc(3,20,[-3,-1,1,3],1) ans =

Columns 1 through 13

3 1 3 -1 -3 3 -3 -3 -1 3 -1 -1 -3 1 3 1 3 -1 1 1 1 1 1 1 1 3 3 -1 -3 -1 1 -1 3 -1 -1 1 1 -1 -3 Columns 14 through 20

1 1 -3 3 -1 1 3 -1 -1 -3 -1 -1 1 -3 3 -1 -1 3 -1 3 3

3.2.3 二维数组元素的标识和寻访

【例3.2-6】本例演示:数组元素及子数组的各种标识和寻访格式;冒号的使用;end的作用。

A=zeros(2,6) A(:)=1:12 A =

0 0 0 0 0 0 0 0 0 0 0 0 A =

1 3 5 7 9 11 2 4 6 8 10 12

A(2,4) A(8) ans = 8 ans = 8

A(:,[1,3]) A([1,2,5,6]') ans =

1 5 2 6 ans = 1 2 5 6

A(:,4:end) ans =

7 9 11 8 10 12

A(2,1:2:5)=[-1,-3,-5] A =

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=A<3 A(L)=NaN L =

1 0 0 0 0 0 1 0 1 0 1 0 A =

NaN 3 5 7 9 11 NaN 4 NaN 8 NaN 12

3.2.4

a=1:8

数组构作技法综合

【例 3.2-7】数组操作函数reshape, diag, repmat的用法;空阵 [ ] 删除子数组的用法。

A=reshape(a,4,2) A=reshape(A,2,4) a =

1 2 3 4 5 6 7 8 A =

1 5 2 6 3 7 4 8 A =

1 3 5 7 2 4 6 8

b=diag(A) B=diag(b) b = 1 4 B =

1 0 0 4

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 …… 此处隐藏:2873字,全部文档内容请下载后查看。喜欢就下载吧 ……

第三章 数值数组及向量化运算(matlab基础教程).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/269798.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)