77范文网 - 专业文章范例文档资料分享平台

数值数组及向量化运算(2)

来源:网络收集 时间:2019-04-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

L=A<3 A(L)=NaN L =

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

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

3.2.4 数组构作技法综合

为了生成比较复杂的数组,或为了对已生成数组的进行修改、扩展,MATLAB提供了诸如反转、插入、提取、收缩、重组等操作。理解和掌握本节内容,对灵活使用MATLAB是重要的。

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

a=1:8 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 0 0 4 0 4 0 4 0 4

D1([1,3],: )=[ ] D1 =

0 4 0 4 0 4 0 4

0 4 0 4 0 4 0 4

【例3.2-8】函数flipud, fliplr, rot90对数组的操作体现着“矩阵变换”。

A=reshape(1:9,3,3) A =

1 4 7 2 5 8 3 6 9

6

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

3.3.1 一

数组运算

数组运算的由来和规则 函数关系数值计算模型的分类

与符号计算不同,数值计算接受的是离散数字,在计算过程中的加减乘除等运算和函数运算是对离散数据集进行的,而最终的计算结果也是离散数据集。

二

数组运算规则

?[aij]m?n和B?[bij]m?n的算术运算结果为数组

两个同维同大小的(m?n)数组AC?[cij]m?n,即C数组的第(i,j) 元素一定是数组A和B相同位置元素进行那指定算术

运算的结果。

三

数组运算符及数组运算函数

3.3.2 数组运算和向量化编程

u,其中r, u, i分别是电阻(欧姆)、电压(伏特)、电流i 【例 3.3-1】欧姆定律:r?(安培)。验证实验:据电阻两端施加的电压,测量电阻中流过的电流,然后据测得的电压、电流计算平均电阻值。(测得的电压电流具体数据见下列程序)。 (1)非向量化程序

clear

vr=[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.257, 0.308, 0.345]; %测量电流数据

% ---------非向量化编程计算各数据点上的电阻值----------- L=length(vr); for k=1:L r(k)=vr(k)/ir(k);

7

end

r % <10> % -------------非向量化编程计算平均电阻值--------------

sr=0; % <12> for k=1:L sr=sr+r(k); end

rm=sr/L r =

Columns 1 through 6

31.7857 30.0000 30.9000 29.4483 30.6780 29.8837 Columns 7 through 10

30.0669 30.8171 31.4935 30.1739 rm =

30.5247

(2)数组运算

vr=[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.257, 0.308, 0.345]; r0=vr./ir rm=mean(r0) r0 =

Columns 1 through 6

31.7857 30.0000 30.9000 29.4483 30.6780 29.8837 Columns 7 through 10

30.0669 30.8171 31.4935 30.1739 rm =

30.5247

(1) 用范数比较两个数组的差 c=norm(r0-r) c =

0

3.4

3.4.1

“非数”和“空”数组

非数NaN

0?,0??等运算都会产生非数(Not a Number)。该非数在MATLAB0?按IEEE规定,,中用NaN 或 nan 记述。 根据IEEE数学规范,NaN具有以下性质:

? NaN参与运算所得的结果也是NaN,即具有传递性。 ? 非数没有“大小”概念,因此不能比较两个非数的大小。

【例3.4-1】非数的产生和性质演示。 (1)非数的产生

a=0/0,b=0*log(0),c=inf-inf

Warning: Divide by zero. a = NaN

Warning: Log of zero. b = NaN c =

NaN

8

(2)非数的传递性

0*a,sin(a) ans = NaN ans = NaN

(3)非数的属性判断

class(a) isnan(a) size(a) ans = double ans = 1 ans =

1 1

【例3.4-2】非数元素的寻访。

%创建带非数的二维数组 rand('state',0)

R=rand(2,5);R(1,5)=NaN;R(2,3)=NaN;R(1,2)=NaN R =

0.9501 NaN 0.8913 0.4565 NaN 0.2311 0.4860 NaN 0.0185 0.4447

LR=isnan(R) LR =

0 1 0 0 1 0 0 1 0 0

%找出非数元素的位置标识

si=find(LR) [rj,cj]=ind2sub(size(R),si) [ri,ci]=find(LR)

disp('非数在二维数组R中的“单下标”位置:')

disp([' 单下标时的第',int2str(si(1)),'、第',int2str(si(2)),'、第',int2str(si(3)),'个元素']) disp([' '])

disp('非数在二维数组R中的“全下标”位置:')

disp([' 第',int2str(ri(1)),'行,第',int2str(ci(1)),'列元素']) disp([' 第',int2str(ri(2)),'行,第',int2str(ci(2)),'列元素']) disp([' 第',int2str(ri(3)),'行,第',int2str(ci(3)),'列元素']) si = 3 6 9 rj = 1 2 1 cj = 2 3 5 ri = 1 2 1 ci = 2 3

9

5

非数在二维数组R中的“单下标”位置: 单下标时的第3、第6、第9个元素

非数在二维数组R中的“全下标”位置: 第1行,第2列元素 第2行,第3列元素 第1行,第5列元素

3.4.2 “空”数组

“空”数组是MATLAB为操作和表述需要而专门设计的一种数组。 二维“空”数组,用一对方括号表示。

高维数组,某维长度为0或若干维长度均为0,则构成“空”数组。

【例3.4-3】关于“空”数组的算例。 (1)创建“空”数组的几种方法

a=[]

b=ones(2,0)

f=rand(2,3,0) %2行3列0页 a =

[] b =

Empty matrix: 2-by-0 f =

Empty array: 2-by-3-by-0

(2)“空”数组的属性

class(a) isnumeric(a) isempty(a) ans = double ans = 1 ans = 1

which a ndims(a) size(a) a is a variable. ans = 2 ans =

0 0

(3)“空”数组用于子数组的删除和大数组的大小收缩 A=reshape(-4:5,2,5)

A =

-4 -2 0 2 4 -3 -1 1 3 5

A(:,[2,4])=[] A =

-4 0 4 -3 1 5

10

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数值数组及向量化运算(2)在线全文阅读。

数值数组及向量化运算(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/614205.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: