- Matlab 教程
- MATLAB - 首頁
- MATLAB - 概述
- MATLAB - 功能
- MATLAB - 環境設定
- MATLAB - 編輯器
- MATLAB - 線上版
- MATLAB - 工作區
- MATLAB - 語法
- MATLAB - 變數
- MATLAB - 命令
- MATLAB - 資料型別
- MATLAB - 運算子
- MATLAB - 日期和時間
- MATLAB - 數字
- MATLAB - 隨機數
- MATLAB - 字串和字元
- MATLAB - 文字格式化
- MATLAB - 時間表
- MATLAB - M 檔案
- MATLAB - 冒號表示法
- MATLAB - 資料匯入
- MATLAB - 資料匯出
- MATLAB - 資料歸一化
- MATLAB - 預定義變數
- MATLAB - 決策
- MATLAB - 決策語句
- MATLAB - if 語句
- MATLAB - if else 語句
- MATLAB - if…elseif else 語句
- MATLAB - 巢狀 if 語句
- MATLAB - switch 語句
- MATLAB - 巢狀 switch
- MATLAB - 迴圈
- MATLAB - 迴圈
- MATLAB - for 迴圈
- MATLAB - while 迴圈
- MATLAB - 巢狀迴圈
- MATLAB - break 語句
- MATLAB - continue 語句
- MATLAB - end 語句
- MATLAB - 陣列
- MATLAB - 陣列
- MATLAB - 向量
- MATLAB - 轉置運算子
- MATLAB - 陣列索引
- MATLAB - 多維陣列
- MATLAB - 相容陣列
- MATLAB - 分類陣列
- MATLAB - 元胞陣列
- MATLAB - 矩陣
- MATLAB - 稀疏矩陣
- MATLAB - 表格
- MATLAB - 結構體
- MATLAB - 陣列乘法
- MATLAB - 陣列除法
- MATLAB - 陣列函式
- MATLAB - 函式
- MATLAB - 函式
- MATLAB - 函式引數
- MATLAB - 匿名函式
- MATLAB - 巢狀函式
- MATLAB - return 語句
- MATLAB - 無返回值函式
- MATLAB - 區域性函式
- MATLAB - 全域性變數
- MATLAB - 函式控制代碼
- MATLAB - 濾波函式
- MATLAB - 階乘
- MATLAB - 私有函式
- MATLAB - 子函式
- MATLAB - 遞迴函式
- MATLAB - 函式優先順序
- MATLAB - map 函式
- MATLAB - mean 函式
- MATLAB - end 函式
- MATLAB - 錯誤處理
- MATLAB - 錯誤處理
- MATLAB - try...catch 語句
- MATLAB - 除錯
- MATLAB - 繪圖
- MATLAB - 繪圖
- MATLAB - 繪製陣列
- MATLAB - 繪製向量
- MATLAB - 條形圖
- MATLAB - 直方圖
- MATLAB - 圖形
- MATLAB - 二維線圖
- MATLAB - 三維圖
- MATLAB - 圖表格式化
- MATLAB - 對數座標軸圖
- MATLAB - 繪製誤差條
- MATLAB - 繪製三維等高線圖
- MATLAB - 極座標圖
- MATLAB - 散點圖
- MATLAB - 繪製表示式或函式
- MATLAB - 繪製矩形
- MATLAB - 繪製頻譜圖
- MATLAB - 繪製網格曲面圖
- MATLAB - 繪製正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 線性插值
- MATLAB - 二維陣列插值
- MATLAB - 三維陣列插值
- MATLAB - 多項式
- MATLAB - 多項式
- MATLAB - 多項式加法
- MATLAB - 多項式乘法
- MATLAB - 多項式除法
- MATLAB - 多項式的導數
- MATLAB - 變換
- MATLAB - 變換函式
- MATLAB - 拉普拉斯變換
- MATLAB - 拉普拉斯濾波器
- MATLAB - 高斯-拉普拉斯濾波器
- MATLAB - 逆傅立葉變換
- MATLAB - 傅立葉變換
- MATLAB - 快速傅立葉變換
- MATLAB - 二維逆餘弦變換
- MATLAB - 為座標軸新增圖例
- MATLAB - 面向物件
- MATLAB - 面向物件程式設計
- MATLAB - 類和物件
- MATLAB - 函式過載
- MATLAB - 運算子過載
- MATLAB - 使用者自定義類
- MATLAB - 複製物件
- MATLAB - 代數
- MATLAB - 線性代數
- MATLAB - 高斯消元法
- MATLAB - 高斯-約當消元法
- MATLAB - 簡化行階梯形
- MATLAB - 特徵值和特徵向量
- MATLAB - 積分
- MATLAB - 積分
- MATLAB - 二重積分
- MATLAB - 梯形法則
- MATLAB - 辛普森法則
- MATLAB - 其他
- MATLAB - 微積分
- MATLAB - 微分
- MATLAB - 矩陣的逆
- MATLAB - GNU Octave
- MATLAB - Simulink
- MATLAB - 有用資源
- MATLAB - 快速指南
- MATLAB - 有用資源
- MATLAB - 討論
MATLAB - 邏輯運算
MATLAB 提供兩種型別的邏輯運算子和函式:
逐元素運算 - 這些運算子作用於邏輯陣列的對應元素。
短路運算 - 這些運算子作用於標量邏輯表示式。
逐元素邏輯運算子對邏輯陣列進行逐元素運算。符號 &、| 和 ~ 分別是邏輯陣列運算子 AND、OR 和 NOT。
短路邏輯運算子允許對邏輯運算進行短路。符號 && 和 || 分別是邏輯短路運算子 AND 和 OR。
示例
建立一個指令碼檔案並輸入以下程式碼:
a = 5;
b = 20;
if ( a && b )
disp('Line 1 - Condition is true');
end
if ( a || b )
disp('Line 2 - Condition is true');
end
% lets change the value of a and b
a = 0;
b = 10;
if ( a && b )
disp('Line 3 - Condition is true');
else
disp('Line 3 - Condition is not true');
end
if (~(a && b))
disp('Line 4 - Condition is true');
end
執行檔案後,將產生以下結果:
Line 1 - Condition is true Line 2 - Condition is true Line 3 - Condition is not true Line 4 - Condition is true
邏輯運算函式
除了上述邏輯運算子外,MATLAB 還提供以下命令或函式用於相同的目的:
| 序號 | 函式和描述 |
|---|---|
| 1 | and(A, B) 查詢陣列或標量輸入的邏輯 AND;對所有輸入陣列 A、B 等執行邏輯 AND,並返回一個包含設定為邏輯 1(真)或邏輯 0(假)的元素的陣列。如果所有輸入陣列在同一陣列位置都包含非零元素,則輸出陣列的元素設定為 1。否則,該元素設定為 0。 |
| 2 | not(A) 查詢陣列或標量輸入的邏輯 NOT;對輸入陣列 A 執行邏輯 NOT,並返回一個包含設定為邏輯 1(真)或邏輯 0(假)的元素的陣列。如果輸入陣列在同一陣列位置包含零值元素,則輸出陣列的元素設定為 1。否則,該元素設定為 0。 |
| 3 | or(A, B) 查詢陣列或標量輸入的邏輯 OR;對所有輸入陣列 A、B 等執行邏輯 OR,並返回一個包含設定為邏輯 1(真)或邏輯 0(假)的元素的陣列。如果任何輸入陣列在同一陣列位置包含非零元素,則輸出陣列的元素設定為 1。否則,該元素設定為 0。 |
| 4 | xor(A, B) 邏輯異或;對陣列 A 和 B 的對應元素執行異或運算。如果 A(i,j,...) 或 B(i,j,...) 非零,但兩者並非都非零,則結果元素 C(i,j,...) 為邏輯真 (1)。 |
| 5 | all(A) 確定陣列 A 的所有陣列元素是否為非零或真。
|
| 6 | all(A, dim) 沿由標量 *dim* 指定的 A 的維度進行測試。 |
| 7 | any(A) 確定是否有任何陣列元素是非零的;測試陣列沿各個維度的任何元素是否為非零數或邏輯 1(真)。any 函式忽略為 NaN(非數字)的條目。
|
| 8 | any(A,dim) 沿由標量 *dim* 指定的 A 的維度進行測試。 |
| 9 | 假 邏輯 0(假) |
| 10 | false(n) 是一個 n×n 的邏輯零矩陣 |
| 11 | false(m, n) 是一個 m×n 的邏輯零矩陣。 |
| 12 | false(m, n, p, ...) 是一個 m×n×p×... 的邏輯零陣列。 |
| 13 | false(size(A)) 是一個與陣列 A 大小相同的邏輯零陣列。 |
| 14 | false(...,'like',p) 是一個與邏輯陣列 p 資料型別和稀疏性相同的邏輯零陣列。 |
| 15 | ind = find(X) 查詢非零元素的索引和值;找到陣列 X 的所有非零元素,並在向量中返回這些元素的線性索引。如果 X 是行向量,則返回的向量是行向量;否則,它返回列向量。如果 X 不包含非零元素或為空陣列,則返回空陣列。 |
| 16 | ind = find(X, k) ind = find(X, k, 'first') 最多返回與 X 的非零條目對應的前 k 個索引。k 必須是正整數,但可以是任何數值資料型別。 |
| 17 | ind = find(X, k, 'last') 最多返回與 X 的非零條目對應的最後 k 個索引。 |
| 18 | [row,col] = find(X, ...) 返回矩陣 X 中非零條目的行和列索引。此語法在處理稀疏矩陣時特別有用。如果 X 是 N 維陣列且 N > 2,則 col 包含列的線性索引。 |
| 19 | [row,col,v] = find(X, ...) 返回 X 中非零條目的列向量或行向量 v,以及行和列索引。如果 X 是邏輯表示式,則 v 是邏輯陣列。輸出 v 包含透過計算表示式 X 獲得的邏輯陣列的非零元素。 |
| 20 | islogical(A) 確定輸入是否為邏輯陣列;如果 A 是邏輯陣列,則返回真,否則返回假。如果 A 是從邏輯類派生的類的例項,則它也返回真。 |
| 21 | logical(A) 將數值轉換為邏輯值;返回一個可用於邏輯索引或邏輯測試的陣列。 |
| 22 | 真 邏輯 1(真) |
| 23 | true(n) 是一個 n×n 的邏輯 1 矩陣。 |
| 24 | true(m, n) 是一個 m×n 的邏輯 1 矩陣。 |
| 25 | true(m, n, p, ...) 是一個 m×n×p×… 的邏輯 1 陣列。 |
| 26 | true(size(A)) 是一個與陣列 A 大小相同的邏輯 1 陣列。 |
| 27 | true(...,'like', p) 是一個與邏輯陣列 p 具有相同資料型別和稀疏性的邏輯 1 陣列。 |