
- 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-end 語句
- 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 - 轉置運算子
矩陣的轉置是矩陣上非常常用的運算。
什麼是矩陣的轉置?
矩陣的轉置是透過將行與列互換,列與行互換得到的。
假設你有一個大小為 3x3(即 3 行 3 列)的矩陣 A。矩陣 A 的轉置用字母 T 作為矩陣 A 的下標表示。
例如,矩陣 A 的轉置將是 AT 或 A'。
讓我們嘗試一個例子
A = 1 2 3 4 5 6 7 8 9
矩陣 A 的轉置將是
AT = 1 4 7 2 5 8 3 6 9 OR A’ = 1 4 7 2 5 8 3 6 9
如果你對轉置矩陣再次進行轉置,你將得到原始矩陣。
讓我們從主矩陣 A 開始。
A = 1 2 3 4 5 6 7 8 9
矩陣 A 的轉置將是
AT = 1 4 7 2 5 8 3 6 9
讓我們再次進行轉置,你應該得到的結果等於我們開始使用的原始矩陣。
(AT)T = 1 2 3 4 5 6 7 8 9
所以方程 (AT)T = A 或 (A')' = A。
MATLAB 中的轉置方法
在 MATLAB 中,你可以使用運算子 .'(即 A .')或 '(即 A')來查詢矩陣的轉置,或者使用 transpose() 方法。
語法
T = A .' T = A' T = transpose(A)
transpose() 方法或使用 .' 或 ' 將返回矩陣的轉置。
示例 1
在這裡,我將使用運算子 .' 來查詢矩陣的轉置。
A = [1 2 3; 4 5 6; 7 8 9] T = A .'
在 MATLAB 中執行後,你將得到以下輸出
>> A = [1 2 3; 4 5 6; 7 8 9] >> T = A.' A = 1 2 3 4 5 6 7 8 9 T = 1 4 7 2 5 8 3 6 9 >>
示例 2
使用運算子 '
A = [1 2 3; 4 5 6; 7 8 9] T = A '
在 MATLAB 中執行後,你將得到以下輸出。
>> A = [1 2 3; 4 5 6; 7 8 9] T = A' A = 1 2 3 4 5 6 7 8 9 T = 1 4 7 2 5 8 3 6 9 >>
示例 3
現在讓我們使用 transpose() 方法。
A = [1 2 3; 4 5 6; 7 8 9] T = transpose(A)
執行後的輸出為:
>> A = [1 2 3; 4 5 6; 7 8 9] T = transpose(A) A = 1 2 3 4 5 6 7 8 9 T = 1 4 7 2 5 8 3 6 9 >>
矩陣的轉置的轉置
現在讓我們嘗試對矩陣的轉置進行轉置,以確保我們能得到原始矩陣。
示例 1
使用運算子 (.')
A = [1 2 3; 4 5 6; 7 8 9] T = (A .').'
當在 MATLAB 中執行上述程式碼時,輸出如下:
>> A = [1 2 3; 4 5 6; 7 8 9] T = (A .').' A = 1 2 3 4 5 6 7 8 9 T = 1 2 3 4 5 6 7 8 9 >>
示例 2
使用如下所示的 transpose() 方法。
A = [1 2 3; 4 5 6; 7 8 9] T = transpose(A) Y = transpose(T)
在 MATLAB 中執行後的輸出為:
>> A = [1 2 3; 4 5 6; 7 8 9] T = transpose(A) Y = transpose(T) A = 1 2 3 4 5 6 7 8 9 T = 1 4 7 2 5 8 3 6 9 Y = 1 2 3 4 5 6 7 8 9 >>
對複數矩陣進行轉置
讓我們首先構造一個如下所示的複數矩陣。
A = [5 3 4-1i 3+2i; 0+4i 1-2i 5 5-1i] B = A.'
在 MATLAB 中執行後的輸出為:
>> A = [5 3 4-1i 3+2i; 0+4i 1-2i 5 5-1i] B = A.' A = 5 + 0i 3 + 0i 4 - 1i 3 + 2i 0 + 4i 1 - 2i 5 + 0i 5 - 1i B = 5 + 0i 0 + 4i 3 + 0i 1 - 2i 4 - 1i 5 + 0i 3 + 2i 5 - 1i >>
再次對矩陣 B 進行轉置將返回原始矩陣,如下所示。
>> B = B.' B = 5.0000 + 0.0000i 3.0000 + 0.0000i 4.0000 - 1.0000i 3.0000 + 2.0000i 0.0000 + 4.0000i 1.0000 - 2.0000i 5.0000 + 0.0000i 5.0000 - 1.0000i >>
轉置運算子 (.') 和 (') 之間的區別?
運算子 .' 執行非共軛轉置。
運算子 ' 執行共軛轉置。
上述運算子對複數矩陣的影響更大。由於運算子 .' 用於非共軛轉置;它將確保它不會影響複數虛部的符號。而當使用運算子 (') 時,複數虛部的符號將受到影響。
讓我們檢查一下包含複數的矩陣以及使用 (.') 和 (') 進行轉置的輸出。
讓我們考慮以下矩陣來測試這兩個運算子。
A = [5 3 4-1i 3+2i; 0+4i 1-2i 5 5-1i]
共軛轉置 (')
矩陣的共軛轉置,也稱為厄米特轉置或伴隨矩陣,是一種數學運算,它包括對矩陣進行轉置,然後將每個元素替換為其複共軛。
複數 a + bi 的複共軛是透過改變虛部的符號形成的,結果為 a - bi。但是,對於實數,複共軛保持不變。
>> A = [5 3 4-1i 3+2i; 0+4i 1-2i 5 5-1i] B = A' A = 5.0000 + 0.0000i 3.0000 + 0.0000i 4.0000 - 1.0000i 3.0000 + 2.0000i 0.0000 + 4.0000i 1.0000 - 2.0000i 5.0000 + 0.0000i 5.0000 - 1.0000i B = 5.0000 + 0.0000i 0.0000 - 4.0000i 3.0000 + 0.0000i 1.0000 + 2.0000i 4.0000 + 1.0000i 5.0000 + 0.0000i 3.0000 - 2.0000i 5.0000 + 1.0000i >>
非共軛轉置 (.')
你很少會遇到“非共軛轉置”這個術語,它指的是不考慮矩陣元素的複共軛的轉置運算。
>> A = [5 3 4-1i 3+2i; 0+4i 1-2i 5 5-1i] B = A.' A = 5.0000 + 0.0000i 3.0000 + 0.0000i 4.0000 - 1.0000i 3.0000 + 2.0000i 0.0000 + 4.0000i 1.0000 - 2.0000i 5.0000 + 0.0000i 5.0000 - 1.0000i B = 5.0000 + 0.0000i 0.0000 + 4.0000i 3.0000 + 0.0000i 1.0000 - 2.0000i 4.0000 - 1.0000i 5.0000 + 0.0000i 3.0000 + 2.0000i 5.0000 - 1.0000i >>
另一個可用於處理複共軛轉置的方法是 ctranspose()。
語法
B = A' B = ctranspose(A)
此方法很少使用,因為你可以直接使用 A'。ctranspose() 是另一種提供矩陣轉置的替代方法。
讓我們看看一些使用 ctranspose() 的示例。
示例 1
考慮以下矩陣。
A = [1 2 3; 4 5 6; 7 8 9] B = ctranspose(A)
執行後的輸出為:
>> A = [1 2 3; 4 5 6; 7 8 9] B = ctranspose(A) A = 1 2 3 4 5 6 7 8 9 B = 1 4 7 2 5 8 3 6 9 >>
示例 2
在這個例子中,我們將使用如下所示的複數矩陣。
A = [0-2i 4+1i;4+3i 0-2i] B = ctranspose(A)
在 MATLAB 中執行後的輸出為:
>> A = [0-2i 4+1i;4+3i 0-2i] B = ctranspose(A) A = 0 - 2i 4 + 1i 4 + 3i 0 - 2i B = 0 + 2i 4 - 3i 4 - 1i 0 + 2i >>