Matlab 基礎知識-2

變數 (Variables)

在提到矩陣 (Matrices) 之前,先說明什麼叫變數,變數 (variables) 是一個使用者設定名稱的陣列,名稱第一個字必須是文字,而其後的字可以使用文字、 數字及底線字元 (_) 任意組合而成,它只有前 63 個字元是有意義的,且大小寫有區分;任何時候只要指定數值給變數 (賦值),便能直接產生變數,而其變數型態是由指定給變數的資料類型所決定,通常我們稱指定數值的式子為「宣告式」,而宣告式的形式如下

1
var = expression; 
  • var 是 Variables 的縮寫,做為設立一個變數名稱
  • 在命名時需以英文字母開頭變數,不能包括特殊符號,而且有區分大小寫。
  • 在命名時建議用下劃線來分隔, e.g. value_of_a
  • 如果命名時定義一個與 MATLAB 函式或指令相同名稱的變數,則該函式或指令會變成不能使用!

Warning

永遠不要產生一個和 Matlab 函式或指令一樣名稱的 M-File。

  • expression 則是給予賦值的動作,它可以是一個純量、常數、陣列、常數組合、其他變數、數學運算公式等…
  • 宣告式後面的 ;,是用來跳過、不顯示運算過程的符號,可以加快程式執行的速度,但是如果要除錯並檢查每一個宣告式執行的結果,可以將其 ; 拿掉,以便顯示宣告式執行的結果。

以下為宣告式賦值範例

1
2
3
4
5
% 以下為輸入指令
>> a = 2
% 以下為輸出結果
ans =
2

等差數列賦值方法

在賦值時,如果需要使用等差數列,e.g. a=[1 2 3],可以使用以下方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
% 以下為輸入指令
a=[1:1:3] % 這裡兩個冒號的意思代表「起始值:間隔:終止值」
% 以下為輸出結果
a =
1 2 3

% 以下為輸入指令
>> a = 1:1:3 % 在這裏可以省略方框號
% 以下為輸出結果
a =
1 2 3

% 以下為輸入指令
a=1:3 % 如果間隔為1時,可以省略輸入間隔與一個冒號
% 以下為輸出結果
a =
1 2 3

如果知道向量中所需的元素數目 (而不是每個元素之間的間距),則可以改用 linspace 指令 linspace(first,last,number_of_elements)。注意,請使用逗號 , 分隔 linspace 指令的參數輸入

1
2
3
4
5
% 以下為輸入指令
>> x = linspace(0,1,5)
% 以下為輸出結果
x =
0 0.250 0.500 0.750 1.000

i & j

在 Matlab 中,i 和 j 是系統內建的純虛數 $\sqrt{-1}$

π

在 Matlab 中,π 為系統內建常數,以 pi 做代表,輸入 pi 即會得到 3.1416 的值

1
2
3
4
5
% 以下為輸入指令
>> pi
% 以下為輸出結果
ans =
3.1416

符號變數

有時我們需要以符號協助我們進行運算,而聲明符號變數的指令如下,syms 表示這裡要定義一些符號變數,a 和 b 是變數名,符號變數的命名規則和變數一致

1
syms a b

Workspace 會顯示

而指令 syms a real 是用來強調 a 是一個實數變數

有些變數之間存在依賴關係,其指令如下

1
2
3
% 以下為輸入指令
>> syms x y(x)
% 這裡聲明 x 是一個符號變數,又聲明 y 是一個符號變數,且 y 的值由 x 決定

Workspace 會顯示

另外可以用二元函數來定義,其指令如下

1
2
3
% 以下為輸入指令
>> syms x y z(x,y)
% 這裡聲明 x, y 分別是一個符號變數,變數 z 依賴 x 和 y

Workspace 會顯示

Info

這裡的圓括號 () 與數值變數的含義完全不同。

變數的儲存

我們可以使用 save 命令將 Workspace 中特定的變量保存為 MAT 文件。

1
2
>> save foo x
% 以上命令將名為 x 的變量保存到名為 foo.mat 的 MAT 文件中。

變數的讀取

1
2
>> load foo
% 可以使用load命令從 MAT 文件加載變量。