• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

matlab学习笔记10_3关系运算符和逻辑运算符

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一起来学matlab-matlab学习笔记10

10_3关系运算符和逻辑运算符

觉得有用的话,欢迎一起讨论相互学习~

参考书籍
《matlab 程序设计与综合应用》张德丰等著 感谢张老师的书籍,让我领略到matlab的便捷
《MATLAB技术大全》葛超等编著 感谢葛老师的书籍,让我领略到matlab的高效

关系运算符

% 示例:关系运算符的用法

format compact % 以紧凑形式的方式输出,以何种方式输出的格式化语句应当事先定义
a=[1 2;3 4]
b=[1 1;1 1]
a>1
a<3
a>=2
a<=2
eq(a,b)     %注意a和b的shape应该相同
a==1        %找出a中等于1的元素
a~=b



a =
     1     2
     3     4
b =
     1     1
     1     1
ans =
     0     1
     1     1
ans =
     1     1
     0     0
ans =
     0     1
     1     1
ans =
     1     1
     0     0
ans =
     1     0
     0     0
ans =
     1     0
     0     0
ans =
     0     1
     1     1

逻辑运算及逻辑函数

  • 逻辑运算和逻辑函数在计算机语言中是普遍存在的,在MATLAB中包含与、或、非、异或4种基本的逻辑运算。逻辑表达式和逻辑函数的值应该为一个逻辑量“真"或“假"MATLAB系统在给出逻辑运算的结果时,以数值“1”代表逻辑“真",以“0”代表“假",但在判断一个量是否为“真”时,以0代表“假",以任意的非零值代表“真"。MATLAB的逻辑运算也是以矩阵为基本运算单元的。

逻辑运算


示例


  • 在M文件中,可以使用and(A,B)、or(A,B)、not(A)分别进行"与","或"*,"非"的操作,和运算符得到的结果一致

逻辑函数

all 判断是否所有元素为非零数

A=[0 1 2;3 4 5]
disp(\'all(A)\')
all(A)
disp(\'all(all(A))\')
all(all(A)) % 按照列进行操作
disp(\'A>=1\')
A>=1
disp(\'all(A>=1)\')
all(A>=1)
% 判断一个矩阵中的所有元素是否都大于等于1 all(all(A>=1))=1

A =
     0     1     2
     3     4     5
all(A)
ans =
     0     1     1
all(all(A))
ans =
     0
A>=1
ans =
     0     1     1
     1     1     1
all(A>=1)
ans =
     0     1     1

注意:MATLAB下标索引从1开始

A=[0 1 2;3 4 5]
disp(\'all(A)\') % 按照列的殊顺序
all(A)
disp(\'all(A,2)\') % 按照行的顺序
all(A,2)
c=rand(1,2,3)
all(c)


A =
     0     1     2
     3     4     5
all(A)
ans =
     0     1     1
all(A,2)
ans =
     0
     1
c(:,:,1) =
    0.6787    0.7577
c(:,:,2) =
    0.7431    0.3922
c(:,:,3) =
    0.6555    0.1712
ans(:,:,1) =
     1
ans(:,:,2) =
     1
ans(:,:,3) =
     1

any 判断是否有一个向量元素为非零数

>> A=[0 1 2; 0 3 4]
A =
     0     1     2
     0     3     4
>> any(A)
ans =
     0     1     1
>> any(A,2)
ans =
     1
     1

exist 查看变量或函数是否存在

find:找出向量或矩阵中非零元素的位置标识

  • 在许多情况下,都需要对矩阵中符合某一特定条件的元素的位置进行定位,如将某一矩阵中为零的元素设为1等。如果这个矩阵的元素非常多,手工修改非常麻烦,灵活运用find函数和各种逻辑及关系运算可以是实现绝大多数条件的元素定位。find函数的基本用法有k=find(A),[i,j]=find(A),[i,j,v]=find(A),这是个很有用的逻辑函数,在对数组元素进行查找,替换和修改变化等操作中占有非常重要的地位。

k=find(A)

  • 此函数返回由矩阵A的所有非零元素的位置标识组成的向量。如果没有非零元素会返回空值。
    二维数组先寻找列再寻找行

    三维数组寻找值

[i,j]=find(A)

  • 此函数返回矩阵A的非零元素的行和列的表示,其中i代表行标而j代表列标。此函数经常用在稀疏矩阵中。在多维矩阵中通常将第一维用i表示,将其余各维作为第二维,用j表示。

[i,j,v]=find(A)

  • 此函数返回矩阵A的非零元素的行和列的标识,其中i代表行标而j代表列表,同时,将相应的非零元素的值放入列向量v中,即i和j的值与[i,j]=find(A)取值相同,只是增加了非零元素的值这一项

利用find()函数实现部分矩阵的替换

isfinite:确认矩阵元素是否为有限值

isempty:确认矩阵是否为空矩阵

  • 不要把空矩阵、零矩阵及矩阵不存在3个概念混淆,空矩阵说明矩阵存在,但是矩阵没有元素;零矩阵是指矩阵的所有元素都为零;矩阵不存在是指当前的工作空间中没有定义此矩阵变量。isempty(A)可以判断一个存在的矩阵变量是否为空矩阵,如果矩阵为空矩阵则返回逻辑“真",否则返回逻辑“假",一个空矩阵至少有一维是零,如0×0、0×5、0×3×3等。空矩阵没有任何元素,可以用函数size(A)来判断,如果其中有一维为零,则A就是零矩阵。(因为还有其他多个维度有可能其中只有方括号但是没有值)

isequal:判断几个对象是否相等

  • isequal(A,B,C...)如果要判断的所有对象A,B,C...具有相同的类型、大小和内容,对于矩阵来说,就是所有矩阵的维数相同,而且矩阵元素的数值相同,如果满足这样的条件,此函数返回逻辑“真",反之,只要有一个对象与其他对象不相同,就会返回逻辑“假"

isnumeric:判断对象是否是数据

  • isnumeric(A)如果是数据矩阵,如稀疏矩阵、双精度矩阵、复数矩阵等,此函数返回逻辑“真",反之,如果A是字符串、结构体矩阵等,则返回逻辑“假”

其他逻辑函数

issparse 判断是否为稀疏矩阵
isstr 判断是否为字符串
islogical 判断一个矩阵是否为逻辑矩阵
isfield 判断对象是否为某个结构体矩阵的域
isstruct 判断是否为结构体
ishandle 判断是否为图像句柄


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
SteemaTeeChartProVCLFMX2017.20FullSuorce在DelphiXE10下的安装发布时间:2022-07-18
下一篇:
Delphi 集成开发环境界面讲解发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap