變數

Matlab 的變數隨呼即用,不必向大部分的程式語言一樣,需要先宣告。 Matlab 的變數名字是一個以英文字母為首的字串, 第二個以後的字元,可以是英文字母,或數目字,或底線符號 _。 大寫與小寫英文字母被視為不同的字元,因此 a 和 A 是兩個不同的變數。

下指令
who
可以看到目前所有的變數名字。例如

        Your variables are:
                 A         Z         t         x
                 E         ans       v         y
下指令
whos
可以看到目前所有的變數名字,和它們的一些資料。例如

              Name        Size       Elements     Bytes    Density   Complex

                 A       3 by 4            12        96       Full      No 
                 E       3 by 3             9        72       Full      No 
                 Z       2 by 3             6        48       Full      No 
               ans       1 by 10           10        80       Full      No 
                 t       1 by 300         300      2400       Full      No 
                 v       1 by 4             4        32       Full      No 
                 x       1 by 300         300      2400       Full      No 
                 y       1 by 300         300      2400       Full      No 

        Grand total is 941 elements using 7528 bytes
以下我們一一解釋各欄資料的意義。
Name
變數名
Size
矩陣或向量的維度
Elements
矩陣或向量中總共有幾個元素
Bytes
佔用電腦記憶體多少字元
Density
有多少元素真的佔用了電腦記憶體。Full 的意思是說,每個元素都佔用了記憶體。 Matlab 提供另一種資料結構,可以使得某些數值為 0 的元素不佔記憶體。
Complex
矩陣或向量元素中是否含有複數。
Grand total
所有變數總共佔用了多少記憶體。只要有一個元素含有複數,就會是 Yes。
一般而言,現在的電腦都有很大的記憶體容量 (動輒一億字元), 而且初學者應該不會使用太大的矩陣。 所以,記憶體通常不是問題。

如果要從記憶體中清除某個變數,就說要清除 A 吧,可以下指令

clear A
如果要清除某些變數,譬如 Z 和 x 和 y 吧,就說
clear Z x y
注意,變數之間不要寫逗點。 如果要把所有變數都清除,就說
clear
如果一個變數的名字與 Matlab 原有的變數或函式名重複了, 那麼,當它被清除之後,Matlab 原有的意義就可以顯現出來。例如
i

         0 + 1.0000i
i = 1;
i

         1
clear i;
i

         0 + 1.0000i

習題

  1. 令 A 是任意一個 9 乘 9 方陣。例如 A = rand(9,9)。 請問如何找到 A 中第三大元素?
  2. 如何造出以下序列?
    0 4 8 ... 96 1 5 9 ... 97 2 6 10 ... 98 3 7 11 ... 99

[ 前一節 ]‧[ 後一節 ]‧[ 回目錄 ]



注意:此處所有文件均為原著,個別的版權宣告日後會一一公布, 整體版面設計亦尚未完成。但仍請勿抄襲文字與圖片,以免觸犯著作權法。

Created: Oct 3, 2001
Last Revised: Oct 10, 2001
© Copyright 2001 Wei-Chang Shann 單維彰

shann@math.ncu.edu.tw