Matlab 基礎知識-1

在開始學習 Matlab 語法之前,需要先瞭解一些關於 Matlab 的基本概念。
在 Matlab 中,資料的基本單位是陣列 (Array) ,它是由一群排成行列結構的資料值所組成的,並在程式中應該要擁有獨一無二的名稱。

Warning

中文的行與列與各地使用習慣,定義會有所差異,這裡指的的行與列為直行 (Column) 橫列 (Raw),但仍建議以英文做記憶。

  • 陣列 (Array)可以歸類為是一種向量 (Vectors) 或是矩陣 (Matrices)
  • 陣列大小 (Array size) 是由陣列的行數列數來決定的。
  • 純量 (Scalars) 在 MATLAB 中被視為是一行一列的陣列
  • 向量 (Vectors) 通常被用來描述成一維陣列
  • 矩陣 (Matrices) 通常被用來描述二維陣列
  • Matlab 矩陣計算以直行為主
  • 而在一般情況下,Matlab 將矩陣視為行向量的集合

每一個向量 (Vectors) 或矩陣 (Matrices) 是由單一或多個元素 (Element) 所組成,而每個元素 (Element) 由單一或多個字元 (Characters) 所組成。

Script (M-File)

Script,我習慣稱它為腳本,它是一種簡單的 Matlab 程式,它包含了一連串預先寫好的 Matlab 命令和函式,猶如演戲的劇本一樣,其儲存的副檔名為 .m 的文件檔,在 Command Window 中輸入 Script 名稱即可執行事先寫好的內容 (不需包含.m副檔名)。
在 Command Window 中可以輸入 edit Scriptname,即可編輯該 Scriptname。

註解

Matlab 提供兩種註解方式,分別是 %%{%}% 可以顯示在程序文件中的任何位置,一般用來做單行說明,或在代碼行末尾附加註解,% 僅在行內,對其後的內容有效,遇到換行後失效,範例如下

1
2
% 單行註解說明
>> y = sum(x) % 代碼註解說明

Info

在後續範例中的 >>,代表 MATLAB 命令視窗內的提示符號 (Command Prompt),使用者可以在其後面輸入任何 MATLAB 語法的運算式,以進行處理。

%{%}則是可以用來做多行註解,但是一般會用來將不想執行的代碼做分割、摘錄, %{%}必須單獨顯示在幫助文本塊前後緊鄰的行上,範例如下

%另外還有一種特別用法,兩個 %% 可以定義程式的段落,%%%%之間的內容會被分段而不會被當成註解,程式依然會執行,但是會是以一個段落執行,有點像文章的斷點的作用,在運行一段代碼後可以暫停,以便查看這一段代碼的運行結果,範例如下

分行

無論 Matlab 還是其他程序語言,也無論函數還是腳本,依次逐行運行是基本特徵,因此我們一般不希望一行的內容太多,因為這樣不方便查錯。但如果一定要使用這樣一行很長的代碼,Matlab 提供了一種分行的方式。使用方法是在代碼中輸入三個 .,然後 Enter,範例如下

1
2
3
4
5
6
7
8
% 以下為輸入指令
>> a = 100+...
200
% 這行代碼和 a=100+200 完全一樣;這種分行方式僅在輸入時有效,在實際運行中,Matlab 仍然認為這是一行代碼。

% 以下為輸出結果
a =
300

另一種分行用法是用在矩陣賦值中,範例如下

1
2
3
4
5
6
7
8
% 以下為輸入指令
>> a=[1 2;...
3 4]

% 以下為輸出結果
a =
1 2
3 4

這樣可以很明顯看出 a 是 2*2 矩陣。

分號

Matlab 的每一行代碼,一般都會在 command window 裡顯示運行結果,如果不想顯示,可以在代碼後面寫一個分號 ;,這樣就可以不顯示該行的運行結果。需要注意的是:其一,寫不寫分號不影響程序的運行和結果;其二,顯示運行結果是需要佔用計算時間的,因此一般的語句都會寫上分號;其三,if、for 等流程控制語句,這一行不加分號。

獲取幫助

在 Command Window 之中可以輸入 doc fcnName 指令以獲取關於 fcnName 函數的相關信息。

Footnote

這裡的 fcnName 指的是一個任意函數名稱。