Matlab 教材:邏輯算子的拓展用法

邏輯算子可以直接用在矩陣或向量上。第一類型是常數與矩陣的邏輯計算,例如

1 < [1 2 3]
就相當於執行
[1<1, 1<2, 1<3]
Matlab 一次執行了所有元素的邏輯算子,得到答案 [0 1 1]

第二類型是維度相同的矩陣邏輯計算,例如

[-1 0 1] < [-2 0 2]
就相當於執行
[(-1)<(-2), 0<0, 1<2]
得到答案 [0 0 1]

其他邏輯算子 ==, ~=, <=, >, > 也都與上述相同, 不再贅述。

其實就連 &| 都可以那樣用。 只是它們的意義,需要稍微深入地說明:

根據以上的定義,

1 & [-2 -1 0 1 2]
就相當於
[1&(-2) 1&(-1) 1&0 1&1 1&2]
得到答案 [1 1 0 1 1],而
[0 1 2 3 4] & [-2 -1 0 1 2]
就相當於
[0&(-2) 1&(-1) 2&0 3&1 4&2]
得到答案 [0 1 0 1 1]

習題

  1. 不要經過 Matlab,請心算
    1 | [-2 -1 0 1 2]
    結果是什麼?
  2. 不要經過 Matlab,請心算
    [0 1 2 3 4] | [-2 -1 0 1 2]
    結果是什麼?
  3. 若 v 是任意維度的向量,元素是任意的整數, 如何利用 sum( ) 和邏輯算子計算 v 的非零元素個數?
  4. 若 v 是任意維度的向量,元素是任意的整數, 如何利用 sum( ) 和邏輯算子計算 v 內有幾個元素是 0?
單維彰 (2003/04/15) --- [Prev] [Next] [Up]