Matlab 內建一個「亂數產生器」 (random number generator)。 所謂亂數,簡單地說,就是一批看似沒有關係、亂七八糟的數。 但是,電腦中的亂數其實都由程式語言計算出來,所以其實都是有規則的。 因此,它們其實不是真的沒有關係,只是表面上看起來亂七八糟而已。 為了這個原因,有些人稱電腦產生的亂數為「擬亂數」或「假亂數」 (pseudo random numbers)。 如果要「隨便」找一個矩陣或向量來做計算的實驗, 我們便需要亂數矩陣。
Matlab 的 rand( ) 函式會呼叫其內建的亂數產生器來製造亂數矩陣。 例如
rand(2)製造一個 2 維方陣,它的元素都是「隨便」舉出來的數。 同理,
rand(1,3), rand(3,1), rand(2,3)依序產生一個 3 維序列、一個 3 維向量、一個 2 乘 3 矩陣, 它們的元素都好像互相沒有關係。
再一個有趣的函式會造出魔方陣來。 所謂魔方陣就是 n 乘 n 的方陣, n > 2, 方陣內的元素是 1, 2, 3, ..., n2 這些整數各出現恰好一次, 使得每一行,每一列,對角線的元素和都一樣。 例如
magic(3)就產生 3x3 的魔方陣。
注意,Matlab 的函式都像函數一樣,可以一個套一個,組成合成函數。 例如
det(magic(3))計算 3x3 魔方陣的行列式,而
rank(rand(4))計算「隨便」一個 4x4 方陣的階數。
習題