第十五章 逻辑运算

逻辑类型

创建数组 真:用true 假:用false
真:非零的值
假: 为零的值

>> a=true

a =

     1

>> b=false

b =

     0

>> a=true(4)

a =

     1     1     1     1
     1     1     1     1
     1     1     1     1
     1     1     1     1

>> b=false(5)

b =

     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0

关系运算

分类:>、<、==、>=、<=、~=。

>> 5>8

ans =

     0

>> 5==5

ans =

     1

>> 2~=5

ans =

     1
>> a=magic(3)

a =

     8     1     6
     3     5     7
     4     9     2

>> b=[1 2 3;4 5 6;7 8 9]

b =

     1     2     3
     4     5     6
     7     8     9

>> a>b

ans =

     1     0     1
     0     0     1
     0     1     0

>> a<b

ans =

     0     1     0
     1     0     0
     1     0     1

>> a==b

ans =

     0     0     0
     0     1     0
     0     0     0

>> a~=b

ans =

     1     1     1
     1     0     1
     1     1     1

与运算

运算表示
and and(a,b)
& a&b

>> a=2

a =

     2

>> b=3

b =

     3

>> a&b

ans =

     1

>> c=[1 0 1;2 3 0;5 0 7]

c =

     1     0     1
     2     3     0
     5     0     7

>> d=[1 1 1;1 1 0;1 1 1]

d =

     1     1     1
     1     1     0
     1     1     1

>> c&d

ans =

     1     0     1
     1     1     0
     1     0     1
>> and(a,b)

ans =

     1

>> and(c,d)

ans =

     1     0     1
     1     1     0
     1     0     1

或运算

运算方式

  1. or or(a,b)
  2. | a|b
>> or(3,0)

ans =

     1

>> 3|0

ans =

     1

>> a=[1 0 1;2 3 0;5 0 7]

a =

     1     0     1
     2     3     0
     5     0     7

>> b=[1 1 1;1 1 0;1 1 1]

b =

     1     1     1
     1     1     0
     1     1     1

>> or(a,b)

ans =

     1     1     1
     1     1     0
     1     1     1

>> a|b

ans =

     1     1     1
     1     1     0
     1     1     1

非运算

单目运算符
真:参与运算的元素为逻辑假或零时
假:参与运算的元素为逻辑真或非零时
运算方式
not not(a)
~ ~3

>> not(3)

ans =

     0

>> ~0

ans =

     1
>> a=[1 0 1;2 3 0;1 7 0]

a =

     1     0     1
     2     3     0
     1     7     0

>> not(a)

ans =

     0     1     0
     0     0     1
     0     0     1

异或运算

异或
xor(a,b)

>> a=0

a =

     0

>> b=1

b =

     1

>> xor(a,b)

ans =

     1
 >> a=[1 2 3;4 5 6;0 1 0]

a =

     1     2     3
     4     5     6
     0     1     0
>> b=[1 0 0;0 1 0;0 0 1]

b =

     1     0     0
     0     1     0
     0     0     1

>> xor(a,b)
ans =

     0     1     1
     1     0     1
     0     1     1

any运算

语法 B=any(A)

  • A 是向量
>> a=[1 2 3 4 5 6 7]

a =

     1     2     3     4     5     6     7

>> any(a)

ans =

     1

>> a=[1 0 3 4]

a =

     1     0     3     4

>> any(a)

ans =

     1

>> a=[0 0 0]

a =

     0     0     0

>> any(a)

ans =

     0
  • A是矩阵
>> a=zeros(4,6)

a =

     0     0     0     0     0     0
     0     0     0     0     0     0
     0     0     0     0     0     0
     0     0     0     0     0     0

>> any(a)

ans =

     0     0     0     0     0     0

>> any(a,1)

ans =

     0     0     0     0     0     0

>> any(a,2)

ans =

     0
     0
     0
     0

>> a(3,4)=1

a =

     0     0     0     0     0     0
     0     0     0     0     0     0
     0     0     0     1     0     0
     0     0     0     0     0     0

>> a(3,5)=1

a =

     0     0     0     0     0     0
     0     0     0     0     0     0
     0     0     0     1     1     0
     0     0     0     0     0     0

>> any(a)

ans =

     0     0     0     1     1     0

>> any(a,1)

ans =

     0     0     0     1     1     0

>> any(a,2)

ans =

     0
     0
     1
     0

  • A是 [ ]
    语法 B=any(A ,dim)
  • B=any(A,1) 等价于any(A)
  • B=any(A,2)

all 函数

语法一: B=all(A)
A是向量

>> a=[1 2 3 4 5]

a =

     1     2     3     4     5

>> all(a)
%全部不为0返回值就为1
ans =

     1

>> a=[1 2 3 0 4]
%只要有0,结果就是0
a =

     1     2     3     0     4

>> all(a)

ans =

     0

A是矩阵

>> a=[1 2 3 0;1 0 2 3;4 5 6 7]

a =

     1     2     3     0
     1     0     2     3
     4     5     6     7

>> all(a)

ans =

     1     0     1     0


A是空

若A 是0*0数组

>> a=[]

a =

     []

>> all(a)

ans =

     1

语法二: B=any(A,dim)
B=all(A ,1)

>> a=[2 3 4;0 1 2;3 4 0;5 6 7]

a =

     2     3     4
     0     1     2
     3     4     0
     5     6     7

>> b=all(a,1)

b =

     0     1     0

B=all(A,2)

>> b=all(a,2)

b =

     1
     0
     0
     1

捷径运算符

只适合标量运算
&&

| |

>> a=2

a =

     2

>> b=0

b =

     0

>> a&&b

ans =

     0

>> a||b

ans =

     1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值