MATLAB是矩陣實(shí)驗(yàn)室(Matrix&Laboratory)的簡稱,由Mathwork公司開發(fā),廣泛應(yīng)用于數(shù)據(jù)分析,無線通信,深度學(xué)習(xí),量化金融,計(jì)算機(jī)視覺和信號(hào)處理等方面,同時(shí)對(duì)于大學(xué)生數(shù)學(xué)建模競賽也是相當(dāng)重要的工具。
出于MATLAB自身庫函數(shù)的完備性和易用性,本人主張將MATLAB作為一種數(shù)學(xué)工具而并非C/C++一樣的程序設(shè)計(jì)語言,也不需要過多的專研數(shù)據(jù)結(jié)構(gòu)與算法,也不一一展示MATLAB數(shù)量眾多的函數(shù)和工具包。所以本文檔的目標(biāo)旨在教會(huì)讀者編寫簡潔高效的,合理地使用MATLAB的內(nèi)置工具實(shí)現(xiàn)目的。
注:使用的版本為MATLAB R2015b版本。
用戶界面
打開MATLAB軟件后,默認(rèn)的用戶界面中有三個(gè)主要區(qū)域,包括文件區(qū)、命令行和工作區(qū)。分別具有以下作用:
- 文件區(qū)(Current Folder) 顯示腳本文件、函數(shù)文件和資源文件
- 命令行(Command Window) 輸入命令和輸出變量的區(qū)域
- 工作區(qū)(Workspaces) 存放變量(創(chuàng)建或?qū)耄?/li>
MATLAB文件
MATLAB中所有文件都以.m作為后綴名,有兩種文件:一種為腳本文件(調(diào)用僅運(yùn)行),另一種為函數(shù)(可以傳入指定參數(shù),輸出指定參數(shù)),以m文件第一行是否有保留字function區(qū)分??梢酝ㄟ^面板左上角的new新建一個(gè)文件,編寫程序。
腳本文件實(shí)例
theta = [-0.5*pi : 0.02 * pi : 0.5 * pi ];
gain =abs(sin (4 .* theta)./(theta .* 4));
polar(theta ,gain ,'r-');
title('\bfAtntenna Gain vs \theta');
函數(shù)文件實(shí)例(函數(shù)文件名為distance,d為輸出變量,a和b為輸入變量)
function [ d ] = distance( a,b )
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
c = a - b;
d = c .^ 2;
d = sqrt(sum(d));
end
最簡單的命令
在MATLAB中,變量的基本形式為矩陣。不妨從創(chuàng)建一個(gè)變量開始。
如果已經(jīng)創(chuàng)建m文件,鍵入以下命令,點(diǎn)擊運(yùn)行(run);如果選擇在命令行運(yùn)行,只需在命令行中輸入以下命令(無需提前聲明變量)如果計(jì)算機(jī)自動(dòng)創(chuàng)建一個(gè)1×1的矩陣,值為1,這時(shí)在工作區(qū)中可以找到變量名為a的矩陣。
命令行輸入
a = 1
命令行輸出
a
= 1
嘗試執(zhí)行更多命令
- 可以直接用賦值語句對(duì)相應(yīng)的數(shù)學(xué)關(guān)系的變量賦值
命令行輸入
b = 3
c = a + b
命令行輸出
b
= 3
c
= 4
- 百分號(hào)% 可以作為單行注釋,接在%后的語句不作為MATLAB命令輸入,如果需要使用%,這時(shí)需要使用 %%; MATLAB中沒有多行注釋,但是可以選中后使用快捷鍵Ctrl + R注釋,Ctrl + T取消注釋。
命令行輸入
% a = 2 單行注釋,不執(zhí)行
c = a + b
命令行輸出
c
= 4
- 英文分號(hào);表示一句語句的結(jié)束,特別的對(duì)于變量,語句末加上會(huì)終止命令行對(duì)該變量的輸出
命令行輸入
a = 2;
c = a + b
命令行輸出
c
= 5
- ... 表示語句未結(jié)束,接續(xù)到下一行(注意 ... 前留空格)
命令行輸入
d = 1 + 2 ...
+ 3
命令行輸出
d
= 6
- 不指定變量名時(shí),計(jì)算機(jī)默認(rèn)賦值給一個(gè)通用變量ans
命令行輸入
1 + 2 + 3
命令行輸出
ans
= 6
- MATLAB中計(jì)算的優(yōu)先級(jí)和一般的數(shù)學(xué)理解一致,但無論多少重優(yōu)先級(jí)都只使用小括號(hào)
命令行輸入
2*1^3+(4*5-6/(1+2))
命令行輸出
ans
= 20
重要的命令行操作
這一部分的命令都十分強(qiáng)大和重要,稍微掌握即可大大減少用戶的時(shí)間,但是難以給出演示,希望讀者能夠多加嘗試,至少掌握其中高光的條目。
- clc 清空命令行
- clear 清空工作區(qū)
- clf 清空繪圖
- close 關(guān)閉窗口
- Ctrl + C 強(qiáng)制中斷正在運(yùn)行的程序(僅光標(biāo)在命令行時(shí)按下Ctrl + C有效)
- ! 調(diào)用操作系統(tǒng)命令行(如:!explorer.exe調(diào)用系統(tǒng)資源管理器)
- diary xxx 創(chuàng)建記錄文件,默認(rèn)文件名為diary(不輸入xxx時(shí))
(當(dāng)你需要記錄調(diào)試過程或者輸出到文件的時(shí)候可以使用,用于記錄命令行窗口的輸入輸出)
- diary on 打開記錄文件(開始記錄)
- diary off 關(guān)閉記錄文件(停止記錄)
- save xxx 創(chuàng)建數(shù)據(jù)文件,保存為xxx.mat,默認(rèn)為matlab.mat
(當(dāng)你需要保存某次數(shù)據(jù)而希望在之后恢復(fù)原有數(shù)據(jù)時(shí),或者不得不暫時(shí)中斷分多步運(yùn)行時(shí),可以使用save命令保存多個(gè)或者所有變量) - load xxx save的反操作,讀取并恢復(fù)xxx.mat的數(shù)據(jù)
- who 查詢workspace的變量
- whos x 返回變量x的數(shù)據(jù)類型,維度,占用字節(jié)數(shù),默認(rèn)為所有變量
- lookfor xxx 顧名思義,檢索關(guān)鍵詞為xxx的文件,檢索的優(yōu)先級(jí)滿足
- 已存在的變量
- 內(nèi)置函數(shù)
- 現(xiàn)有目錄的文件
- 所有目錄的文件
- help xxx 戰(zhàn)略核武器,用于顯示MATLAB內(nèi)置函數(shù)xxx的詳細(xì)幫助信息(優(yōu)勢(shì):詳細(xì)的使用說明;缺陷:慢,有時(shí)候在瀏覽器上看可能更舒服)
小結(jié)
MATLAB是一種高級(jí)的解釋性語言,在用于很多方面都有很大的用處,對(duì)用戶十分友好。一般來說,用戶可以依照MATLAB提示完成所有操作。當(dāng)然個(gè)人也推薦遇事不決問度娘,搜索引擎能幫我們了解更多的解決途徑。如有疑問,可以向我提出,我會(huì)盡可能解答。
REF
- MATLAB Programming for Engineers - 4th Edition Ch