1. 程式人生 > 其它 >MatLab---邏輯向量與邏輯矩陣

MatLab---邏輯向量與邏輯矩陣

v=rand(1,5)

v =

0.3012 0.4709 0.2305 0.8443 0.1948

>> v>0.5

ans =

1×5 logical 陣列

0 0 0 1 0

v(u) ;顯示logical型別為真值的元素

ans =

0.8443

>> vec=[5 9 3 4 6 11]

vec =

5 9 3 4 6 11

>> v=[0 1 0 0 1 1]

v =

0 1 0 0 1 1

>> vec(v)
錯誤:陣列索引必須為正整數或邏輯值。


>> v=logical([0 1 0 0 1 1])

v =

1×6 logical 陣列

0 1 0 0 1 1

>> vec(v)

ans =

9 6 11

>> log_true=ones(3,4,'logical') :建立一個三行四列的logical型別的真值的元素

log_true =

3×4 logical 陣列

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

v

v =

1×6 logical 陣列

0 1 0 0 1 1

>> u

u =

1×5 logical 陣列

0 1 0 1 0

>> any(v)%

ans =

logical

1

>> any(v)%至少有一個是真的  當N行M列時,判斷一列中至少有一個真的,結果是行向量

ans =

logical

1

>> all(v)%是不是陣列中全部是真值  當N行M列時,判斷一列中是否全為真的,結果是行向量

ans =

logical

0

X=rand(1,5)

X =

0.4694 0.4138 0.5027 0.1254 0.1323

>> v=X>0.2

v =

1×5 logical 陣列

1 1 1 0 0

>> find(v)  :找到滿足X>0.2的下標

ans =

1 2 3

>> min(find(v))  找出滿足條件的下標最小值

ans =

1

find(u,1,'first') %找第一個邏輯真的位置

ans =

2

>> find(u,2,'first')%找前兩個邏輯真的位置

ans =

2 3

v1=1:5

v1 =

1 2 3 4 5

>> v2

v2 =

1 2 3 4

>> all(v1==v2)
錯誤:矩陣維度必須一致。

>> isequal(v1,v2) :兩個向量的維度不一樣時,也可以比較

ans =

logical

0

刪除向量中小於0的元素

vec=[11 -5 33 2 8 -4 25]

vec =

11 -5 33 2 8 -4 25

>> vec(find(vec>0))

ans =

11 33 2 8 25

找出0後面是1,1後面是0的元素的個數

rng(0)
>> v=randi([0,1],[1,1000]);
>> %0->1 1->0
>> v(1:10)

sum(diff(v)==1)

ans =

243

>> sum(diff(v)==-1)

ans =

243

向量中,2在1的後面有多少個元素

U=randi([0,2],[1,1000]);

U(find(U==0))=10

sum(diff(U)==1)

ans =

30

在用邏輯運算子時,當是標量的時候,用兩個符號;

7>2&&5>3

當是向量比較大小的時候,用一個邏輯符號;