2.3数值型数组的运算答题.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(2) 设a和b是标量,则 ab 当 a和b都非零时,运算结果为1;只要a和b中有一个为零,则结果为0. a|b 只要a和b中有一个非零,则结果为1 (只有当a和b 都为零时,运算结果为0,否则为1) ~a 当a是零时,运算结果为1;当a非零时,运算结果为0 xor(a,b) 当a和b中恰好一个为0,另一个不为0时运算结果为1,否则为0 a b (先决与):当a为0时,则结果为0,而不去计算右边表达式的值(只有当该逻辑运算符的左边非零时,才继续执行该符号右边的运算)。 a || b (先决或):当a为1时,则结果为1,而不去计算||右边表达式的值(只有当该逻辑运算的左边为零时,才继续执行该符号右边的运算)。 注意: 只有当a和b为标量时,a b (先决与)和a || b (先决或)才有意义。 (3) 若参与逻辑运算的是两个同型矩阵,则对两个矩阵相同位置的元素逐对按标量规则进行逻辑运算。 最终运算结果是一个与原矩阵同型的逻辑矩阵。 (4)若参与逻辑运算的一个是标量,一个是矩阵,则分别用矩阵的每个元素和标量进行逻辑运算。最终运算结果是一个与原矩阵同型的逻辑矩阵。 (5) 逻辑非(~)是一个单目运算。若A是一个数组,~A对矩阵A的每个元素进行逻辑非运算,得到的结果是一个与A同型的逻辑矩阵。 2.4.3 利用逻辑表达式提取子数组 1、利用find函数 基本格式:indexes=find(X) 功能:返回数组X中非零元素的序号(单下标),如无非零元素,则返回空数组。 其它格式: 格式:[I, J]=find(X), X是矩阵 功能:返回矩阵X中非零元素的行号和列号。 格式:[I, J,V]=find(X), X是矩阵 功能:返回矩阵X中非零元素的行号、列号及值。 此外,还可以用下列格式找出前k个和最后k个非零元素。 […]=find(X,k,’first’) […]=find(X,k,’last’) find(X,k,’first’) 也可以写为find(X,k)。 另外两个关系逻辑函数(any和all) 格式:any(x) 功能:1)若x是一个向量,如果x中存在非零元素,则返回1;否则,返回0。2)若x为矩阵,则分别对矩阵的每一列进行判断,最后返回一个由元素0和1组成的行向量。 格式:all(x) 功能:1)若x是一个向量,如果x中所有元素都非0,则返回1;否则,返回0。2)若x为矩阵,则分别对矩阵的每一列进行判断,最后返回一个由元素0和1组成的行向量。 例: A=[-2 -1 0 1; 2 3 4 5] any(A), all(A), any(A(:)), all(A(:)) find(A) %找出A中非零元素的下标 A0 %关系表达式,结果为逻辑型数组 any(A(:)0) %判断A中是否存在大于零的元素 all(A(:)0) % 判断是否A中所有元素都大于零 x=find(A0) %找出(A0)的非零元素的下标,即A中大于零的元素的下标 y=A(x) %利用单下标方式取子数组,找出A中大于零的所有元素 n=numel(y) %统计A中大于零的元素的个数 s=sum(y) %求A中大于零的元素之和 2. 逻辑数组下标 关系表达式及逻辑表达式的运算结果为逻辑数组。此外,还可以用logical函数将数值数组转换为逻辑数组。 格式:logical(X) 功能:将数值数组X转换为逻辑数组 例如:X=2*eye(3); L=logical(X) [例] 用逻辑数组下标提取子数组 A=[1 2 3;4 5 6;7 8 9] L1=logical([1 0 1]) L2=logical([1 1]); A(L1,L2) %全下标 A(L1) %单下标 说明: 用A(L1,L2)表示子数组,其中,L1,L2为逻辑向量,当L1,L2的元素为零 ,则不取该位置的元素,反之则取该位置的元素。单下标的情况与此类似。 例:A=[-2 -1 0 1; 2 3 4 5], 判断A中是否存在绝对值大于2的元素,并将它们修改为inf. 方法1. 利用find函数 any(abs(A(:)2) x=find(abs(A)2) A(x)=inf 方法2. 利用逻辑数组下标 any(abs(A(:)2) A(abs(A)2)=inf 例:找出A的元素中的正奇数,并将它们的值都加1。 方法1. 利用find函数 A=[-2 -1 0 1; 2 3 4 5] x=find( A0 rem(A,2)==1) A(x)=A(x)+1 方法2. 利用逻辑数组下标 A=[-2 -1 0 1; 2 3 4 5] L= A0 rem(A,2

文档评论(0)

a1166671 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档