- MATLAB量化金融分析基礎與實戰
- 馬萌
- 1215字
- 2020-05-28 17:52:04
1.3 矩陣
1.3.1 實例3:矩陣及特殊矩陣的建立方法
矩陣中元素用方括號包括起來,同一行元素用逗號間隔,換行用分號表示。
例9:建立矩陣A、B。

例10:建立特殊矩陣。
建立空矩陣C。

建立2×2單位矩陣。

建立元素全為0的2×2矩陣。

建立元素全為1的2×2矩陣。

建立元素全為NaN的2×2矩陣。

1.3.2 實例4:利用一維索引提取二維矩陣中的元素
提取m×n矩陣X處于第i行第j列元素,可以用二維索引:
X(i,j)
也可以用一維索引S:
X(S)
其中一維索引S由二維索引逐列逐行依次排序映射生成。
m=size(X,1);
S=m?(j-1)+i;
例11:二維索引與一維索引映射關系示例。

例12:從1.3.1節建立的矩陣A中提取第1行第2列元素。

或者,

例13:提取A的第2行全部元素。

例14:提取A的第2列全部元素。

例15:提取A的第2~3列全部元素。

例16:提取B的第2~3行與2~3列交集元素。

例17:提取矩陣B中第1列大于等于2的元素所在行。

例18:刪除矩陣B第2~3行全部元素。

1.3.3 實例5:矩陣轉置、共軛轉置與求逆
例19:求復數的共軛轉置示例。

例20:矩陣轉置可以用點號加單引號或者transpose函數。

實數矩陣的共軛轉置與轉置相同,故可直接用單引號求實數矩陣的轉置。
>>A′
例21:用inv函數求矩陣的逆示例。

例22:用pinv()函數求奇異矩陣的Moore-Penrose廣義逆矩陣示例。

1.3.4 實例6:sortrows與sort函數比較
例23:矩陣A中行向量按照第3列值從大到小排列。
>>sortrows(A,-3)
例24:矩陣A中行向量按照第3列值從小到大排列。
>>sortrows(A,3)
例25:矩陣A每個行向量中元素從小到大分別排序。
>>sort(A,2,′ascend′)
例26:矩陣A每個行向量中元素從大到小分別排序。
>>sort(A,2,′descend′)
例27:矩陣A每個列向量中元素從小到大分別排序。
>>sort(A,1,′ascend′)
例28:矩陣A每個列向量中元素從大到小分別排序。
>>sort(A,1,′descend′)
tips:sort(A,dim,method)以dim指定計算方向,圖1-1說明了dim參數與計算方向的關系。其他需指定計算方向的函數如diff()、sum()等,其參數原理亦同。

圖1-1 矩陣計算方向圖
1.3.5 矩陣與矩陣元素算術運算概述
MATLAB中矩陣的算術運算可以分為矩陣間的運算(見表1-4)和矩陣對應位置元素的運算(見表1-5)。
表1-4 矩陣間的運算

表1-5 矩陣對應位置元素的運算

tips:如需看某個函數(如cumsum)的詳細使用方法可輸入:>>help cumsum
例29:矩陣A與B做矩陣乘法。

例30:矩陣A中每個元素變為當前元素的平方。

例31:四舍五入保留2位小數。

例32:截取并保留2位有效數字。

例33:計算得到下單股票數量為2101.2323股,截取為2100股。

例34:已知收益率序列R=ones(3,1)?0.01,計算收益率曲線。

例35:idivide函數示例。

1.3.6 邏輯、關系和集合運算概述
MATLAB中常見的邏輯運算見表1-6,關系運算見表1-7,集合運算見表1-8。
表1-6 常用邏輯運算

表1-7 常用關系運算

表1-8 常用集合運算符表

例36:異或函數xor(a,b)示例。
如果a、b兩個值同真或者同假則異或結果為0,反之異或結果為1。數字0為真,非0的數字均為假。

tips:一般以矩陣作為輸入變量的函數也可以傳入單個數字作為輸入,因為可以將單個數字視為1×1的矩陣。但也有函數例外,如maxdrawdown。