久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

邏輯運(yùn)算符 | Matlab 基礎(chǔ)

 小溫愛怡寶 2023-07-22 發(fā)布于江西

邏輯運(yùn)算符

  • 運(yùn)算符的優(yōu)先級(jí)

  • 邏輯運(yùn)算符和向量

  • 用邏輯向量進(jìn)行下標(biāo)

MATLAB的異或函數(shù)xor(a, b)用于計(jì)算兩個(gè)二進(jìn)制數(shù)的異或結(jié)果。它接受兩個(gè)參數(shù)a和b,,返回一個(gè)與a和b同維度的數(shù)組,,其中每個(gè)元素都是a和b對(duì)應(yīng)位置上的二進(jìn)制數(shù)異或的結(jié)果。

例如,,當(dāng)a=[1 0 1 0],,b=[0 1 0 1]時(shí),執(zhí)行xor(a, b)的結(jié)果為[1 1 1 1],,表示a和b對(duì)應(yīng)位置上的二進(jìn)制數(shù)異或的結(jié)果,。

下面是一個(gè)更具體的例子:

a = [1 0 1 0];
b = [0 1 0 1];
result = xor(a, b);
disp(result);

輸出結(jié)果為:[1 1 1 1]。

異或函數(shù)xor(a, b)是一種邏輯運(yùn)算符,,用于比較兩個(gè)二進(jìn)制數(shù)的每一位,。如果兩個(gè)二進(jìn)制數(shù)的某一位不同,則該位的結(jié)果為1,,否則為0,。例如,在MATLAB中,,xor(a, b)可以用于比較兩個(gè)邏輯向量的每個(gè)元素,。如果a和b是邏輯向量,則xor(a, b)返回一個(gè)邏輯向量,其中每個(gè)元素都是a和b對(duì)應(yīng)元素的異或結(jié)果,。


優(yōu)先級(jí)可以用括號(hào)覆蓋,例如

>> ~ 0 & 0

ans =

  logical

   0

>> ~ (0 & 0)

ans =

  logical

   1

使用括號(hào)使邏輯更清晰永遠(yuǎn)不會(huì)錯(cuò),,即使它們?cè)谡Z(yǔ)法上是不必要的。


運(yùn)算符的優(yōu)先級(jí)

2 > 1 & 0
ans =

  logical

   0
  1. 先比較 2 是否大于 1,,因?yàn)?2 大于 1,,所以 2>1 為真,即返回邏輯值 true,。
  2. 再將邏輯值 true 和數(shù)字 0 進(jìn)行邏輯與運(yùn)算,,邏輯與運(yùn)算的規(guī)則是當(dāng)且僅當(dāng)兩個(gè)操作數(shù)都為真時(shí),結(jié)果才為真,,否則結(jié)果為假,。因?yàn)?true & false 的結(jié)果為 false,所以最終的表達(dá)式結(jié)果為 false,。

再如

0 < r < 1
ans =

  logical

   0

表達(dá)式0<r<1被求值為0,。這是因?yàn)樽筮叢僮?code style="font-size: 14px;word-wrap: break-word;padding: 2px 4px;border-radius: 4px;margin: 0 2px;background-color: rgba(27,31,35,.05);font-family: Operator Mono, Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);">(0 < 0.5)首先被求值為1 (true),然后是1<1 (false),。

這樣的不平等應(yīng)該被編碼為

(0 < r) & (r < 1)

括號(hào)不是嚴(yán)格必要的,,但它們確實(shí)有助于澄清邏輯。

邏輯運(yùn)算符和向量

邏輯運(yùn)算符還可以對(duì)(相同大小的)向量進(jìn)行操作,,返回邏輯向量,,例如:

~(~[1 2 0 -4 0])

ans =

  1×5 logical 數(shù)組

   1   1   0   1   0

在MATLAB中,~是邏輯非運(yùn)算符,,用于將邏輯向量中的每個(gè)元素取反,。在這個(gè)例子中,[1 2 0 -4 0]是一個(gè)數(shù)值向量,,MATLAB將其轉(zhuǎn)換為邏輯向量,,其中0表示false,非0表示true,。然后,,~[1 2 0 -4 0]將每個(gè)元素取反,即0變?yōu)?,,非0變?yōu)?,。因此,結(jié)果為[false, false, true, false, true],,即[0 0 1 0 1],。最后,MATLAB將結(jié)果轉(zhuǎn)換為邏輯向量,,其中1表示true,,0表示false,。因此,~[1 2 0 -4 0]的結(jié)果為[true, true, false, true, false],,即[1 1 0 1 0],。

用邏輯向量進(jìn)行下標(biāo)

vector的元素可以用下標(biāo)引用,而下標(biāo)本身也可以是vector,,例如:

a = [-2 0 1 5 9];
a([5 1 3])

ans =

     9    -2     1

先定義了一個(gè)包含 5 個(gè)元素的數(shù)組 a,,然后通過 a([5 1 3]) 的方式,提取了 a 中的第 5,、1,、3 個(gè)元素,即分別是 9,、-2,、1。這些元素被組成了一個(gè)新的數(shù)組,,作為這段代碼的輸出,,即 ans = [9 -2 1]。

>> a(logical([0 1 0 1 0]))

ans =

     0     5

在MATLAB中,,a(logical([0 1 0 1 0]))是一個(gè)索引操作,,用于從向量a中選擇邏輯向量[0 1 0 1 0]中為true的元素。在這個(gè)例子中,,向量a是[-2 0 1 3 -1],,邏輯向量[0 1 0 1 0]表示選擇第二和第四個(gè)元素。因此,,結(jié)果為[0 5],。

>> a(logical([0 0 0 0 0]))

ans =

  空的 1×0 double 行向量

在MATLAB中,,a(logical([0 0 0 0 0]))是一個(gè)索引操作,,用于從向量a中選擇邏輯向量[0 0 0 0 0]中為true的元素。由于邏輯向量中沒有true的元素,,因此結(jié)果為空的1×0 double行向量,。


邏輯向量下標(biāo)提供了一種從向量中刪除某些元素的優(yōu)雅方式,例如:

a = a(a > 0)

a =

     1     5     9

從a中刪除所有非正元素,,因?yàn)閍>0返回邏輯向量[0 0 1 1 1],。所以返回a = [-2 0 1 5 9]的后三位。

表達(dá)式a>0是一個(gè)邏輯向量,,因?yàn)檎Z(yǔ)句:

>> islogical(a > 0)

ans =

  logical

   1

islogical() 函數(shù)的作用是判斷輸入的參數(shù)是否為邏輯向量,,因此在這個(gè)例子中,islogical(a > 0) 的返回值為邏輯值 true,,說明 a>0 的返回值確實(shí)是一個(gè)邏輯向量,。

數(shù)字向量[0 0 1 1 1]不是邏輯向量,因?yàn)椋?/p>

>> islogical([0 0 1 1 1])

ans =

  logical

   0

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多