源自於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之間,要使用時可以自行乘以所需之倍數。
隨機函數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) fix. 朝零方向取整
- (2) floor. 朝负无穷方向取整(不超过x 的最大整数.(高斯取整))
- (3) ceil. 朝正无穷方向取整(大于x 的最小整数)
- (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之解說
沒有留言:
張貼留言