2021年6月8日 星期二

特殊矩陣

 特殊矩陣

源自於http://bime-matlab.blogspot.com/2006/09/26.html

由鍵盤輸入是一般性的作法,但數量一多,就需耗費甚大的功夫。有些資料可來自其他資料檔,或excel之檔案內容,或特殊函數執行後之結果。由資料檔輸出入將另章作討論,而特函矩陣例如,magic(N):
>> M=magic(3)

M =
     8     1     6
     3     5     7
     4     9     2
>> M=magic(2)
M =
     1     3
     4     2
>> M=magic(4)
M =
    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1
這個特殊函數會產生以括號內之參數值為維度之方矩陣,其元素為由1至N^2(此例中N=3)之連續正整數,其各行各列及對角線元素之和均相等。

在應用時,常以此函數為例,立即製作一個方矩陣,其大小為NxN。
隨機函數rand也是一個常用的函數,它可以利用亂數產生矩陣,其值介於0與1之間,要使用時可以自行乘以所需之倍數。

>>  M=rand(2,4)
M =
    0.7094    0.2760    0.6551    0.1190
    0.7547    0.6797    0.1626    0.4984

>>  M=(rand(2,4)*10)
M =
    4.3874    7.6552    1.8687    4.4559
    3.8156    7.9520    4.8976    6.4631

>> M=round (rand(2,4)*10)
M =
     8     1     6     3
     9     9     1     5

>> M=fix(rand(2,4)*10)
M =
     9     1     9     8
     9     9     4     1

>> M=floor(rand(2,4)*10)
M =
     4     7     6     8
     9     9     0     9

>>  M=ceil(rand(2,4)*10)
M =
     7     8     7     8
     8     4     2     1

Matlab取整函数有: fix, floor, ceil, round四种,具体使用方法如下:
  1. (1) fix. 朝零方向取整
  2. (2) floor. 朝负无穷方向取整(不超过x 的最大整数.(高斯取整))
  3. (3) ceil. 朝正无穷方向取整(大于x 的最小整数
  4. (4) round. 四舍五入到最近的整数

要創造一個矩陣全為零或全為零的元素,在MATLAB中也有辦法,不必利用鍵盤輸入。其函數有zeros(N1,N2)、ones(N1,N2)及eye(N1,N2)等,執行後會產生一個N1xN2的矩陣,其內含元素均為0或均為1(zeros);後者則是其對角元素為1,其餘元素為0。

>> I=ones(2,5) 
I =
     1     1     1     1     1
     1     1     1     1     1

>> I=zeros(2,5) 
I =
     0     0     0     0     0
     0     0     0     0     0

>> I=eye(2,5) 
I =
     1     0     0     0     0
     0     1     0     0     0

對角線矩陣函數(diag)之功能則可由下列例子加以說明。若M為方矩陣,則diag(M)會產生一個行向量包括A對角項目。

>> M=round (rand(4,4)*10)
M =
     4     5     6     2
     6     8     5     8
     1     9     0     3
     1     1     3     5
>> diag(M)
ans =
     4
     8
     0
     5

>>  M=round (rand(2,4)*10)
M =
     4     6     9     8
     8     5     3     8
>> diag(M)
ans =
     4
     5



M =
     4     5     6     2
     6     8     5     8
     1     9     0     3
     1     1     3     5
>> D=diag(M)
D =
     4
     8
     0
     5

>> diag(D)
ans =
     4     0     0     0
     0     8     0     0
     0     0     0     0
     0     0     0     5

特殊矩陣一覽表
  特殊函數  說明

  • eye(n) 特性矩陣(identity matrix),產生一個nxn單位方矩陣。
  • zeros(n1,n2) 值零n1xn2矩陣,元素值為零
  • ones(n1,n2) 值一n1xn2矩陣,元素值為一
  • diag 對角線矩陣(diagonal matrix),僅對角線項有值。
  • triu 上三角矩陣
  • tril  下三角矩陣
  • rand 隨機矩陣
  • hilb 希伯特矩陣
  • magic(n) 魔術方塊nxn矩陣
  • toeplitz 參見help toeplitz之解說

沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...