1. 程式人生 > >MATLAB入門學習-#3-矩陣基礎#2特殊矩陣的建立和程式示例

MATLAB入門學習-#3-矩陣基礎#2特殊矩陣的建立和程式示例

MATLAB入門學習-#3-矩陣基礎#2特殊矩陣的建立和程式示例

1.零矩陣zeros

上一個聊過了,不多bb

2.么矩陣ones

上一個聊過了,不多bb

3.單位矩陣eye

使用的命令是eye(n) or eye(m,n)

4.隨機矩陣rand&randn

先聊聊rand和randn的區別吧:

rand 生成均勻分佈的偽隨機數。分佈在(0~1)之間
     主要語法:rand(m,n)生成m行n列的均勻分佈的偽隨機數
randn 生成標準正態分佈的偽隨機數(均值為0,方差為1)
     主要語法:和上面一樣
     下面介紹兩種隨機矩陣的創造:(**下面說的分佈都是矩陣中的隨機數是在這種分佈裡面挑出來的**)
     1.從a到b均勻分佈的隨機矩陣:s = a + (b-a)* rand(n)
     2.均值為u,方差為s的正態分佈的隨機矩陣:y = u + sqrt(s)* randn(n)
s=5+5*rand(3,2)

s =

    9.0736    9.5669
    9.5290    8.1618
    5.6349    5.4877      %創造出了一個3x2的5~10均勻分佈的隨機矩陣

>> m=5+sqrt(3)*randn(3)       %sqrt(n)是n開平方根 

m =

    4.2490    9.7968    6.2564
    5.5934    2.6619    4.8908
   11.1980   10.2566    6.2380     %創造出了一個3x3的均值5方差3的正態分佈的隨機矩陣
  • 補充一下輸出均值和方差的命令介紹:

matlab中提供了計算向量和矩陣的函式,方便程式設計時使用,
1.mean(X),返回向量X的均值; mean2(X),返回矩陣的均值;
如果X是一個矩陣時,返回一個向量,mean(X,1)得到列均值,mean(X,2)得到行均值;mean(mean(X))可得到整個矩陣的均值
2.median(X),返回向量X的中位數,用法同mean
3.var與std,std2
var(X)用於獲得向量X的均方差,std主要用於矩陣上,其中std(X,0,1)獲得列的均方差;std(X,0,2)獲得行的均方差;std(std(X))可以獲得矩陣X的均方差,與std2一樣。

5.魔方矩陣magic

首先我就有一個問題,魔方矩陣是個什麼雞錘?請點:魔方矩陣_百度百科

>> magic(3)

ans =

     8     1     6
     3     5     7
     4     9     2

>> magic(4)

ans =

    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

這東西有自己一套建立的方法,MATLAB也就是把那個步驟簡化起來然後弄個magic命令出來讓你好用一點了。
可是魔方矩陣這個東西是幹什麼用的呢…不知道,差也查不到,就很難受:
在這裡插入圖片描述

6.Hilbert矩陣

什麼是Hilbert矩陣?Hilbert矩陣_百度百科

>> hilb(6)

ans =

    1.0000    0.5000    0.3333    0.2500    0.2000    0.1667
    0.5000    0.3333    0.2500    0.2000    0.1667    0.1429
    0.3333    0.2500    0.2000    0.1667    0.1429    0.1250
    0.2500    0.2000    0.1667    0.1429    0.1250    0.1111
    0.2000    0.1667    0.1429    0.1250    0.1111    0.1000
    0.1667    0.1429    0.1250    0.1111    0.1000    0.0909

>> format rat     %輸出格式切換為有理數
>> hilb(6)

ans =

       1              1/2            1/3            1/4            1/5            1/6     
       1/2            1/3            1/4            1/5            1/6            1/7     
       1/3            1/4            1/5            1/6            1/7            1/8     
       1/4            1/5            1/6            1/7            1/8            1/9     
       1/5            1/6            1/7            1/8            1/9            1/10    
       1/6            1/7            1/8            1/9            1/10           1/11    

7.Toeplitz矩陣

什麼是Toeplitz矩陣?Toeplitz矩陣_百度百科
我也不知道這是個什麼東西…反正命令式toeplitz,用的時候自己去help吧…我剛剛help完試了試,有點東西!

>> help toeplitz
toeplitz - 託普利茨矩陣

    此 MATLAB 函式 返回非對稱託普利茨矩陣,其中 c 作為第一列,r 作為第一行。如果 c 和 r 的首個元素不同,toeplitz
    將發出警告並使用列元素作為對角線。

    T = toeplitz(c,r)
    T = toeplitz(r)

    另請參閱 hankel, kron

    toeplitz 的參考頁
    名為 toeplitz 的其他函式
>> c=[1 2 3 3];
>> r=[3;4;5;6];
>> toeplitz(c,r)
警告: 輸入列的第一個元素與輸入行的第一個元素不匹配。
         在對角線衝突中,列具有更高優先順序。 
> In toeplitz (line 31) 

ans =

     1     4     5     6
     2     1     4     5
     3     2     1     4
     3     3     2     1