现在的位置: 首页 > 综合 > 正文

MATLAB简介

2014年08月29日 ⁄ 综合 ⁄ 共 6421字 ⁄ 字号 评论关闭

 

如何開始使用MATLAB[1]?實際上只要會在指令窗下鍵入指令即行,當然你先要知道如何將MATLAB安裝及使用。在指令窗之前,要下那些指令似乎也沒多大學問。由於是交談式的環境,任何你想到的指令均可以輸入,輸入錯了,MATLAB會有錯誤的訊息,重新輸入正確的指令就行。若一時不知如何下手,有幾個指令可以作為開場白,諸如demohelphelpwindocwhowhat等等指令均可以一試,甚至一直打why,你也可以得到許多意想不到的答案。若有想到什麼指令類似的,則可在其前面打入lookfor進行尋找。如果什麼都不知道,打一個help也可以找到MATLAB所收集的相關指令。

如果真的什麼都不知道,那就將MATLAB當做掌上型計算機吧!雖然把MATLAB當計算機有點殺雞用牛刀,不過如果電腦已開著,閒著也是閒著,就從最簡單的123開始吧,你會發覺MATLAB還是相當好用的計算機呢。例如1200的開三次方,sin(pi/4)等於多少?就只怕你敲鍵太慢而已,MATLAB會在一瞬間給你答案。

1200^(1/3 )

ans =

10.6266

sin(pi/4)

ans =

0.7071

當初APPLE II [1]盛行之時,APPLEBASIC的交談特性,造就蘋果電腦曾經不可一世(雖然這段歷史已如過境雲煙),也使個人電腦有如今的發展。所謂交談特性是,一個指令一個動作,使你立即知道結果,不必經翻譯器。進入MATLAB時,呈眼簾的就是指令窗,在這個窗口下,每下一個指令,就執行一個動作,並顯示其結果如果指令下錯了,MATLAB會告訴你錯在那裡,或只要按一下向上的箭號,即可返回上一指令進行修改,並再重來。在最新版的MATLAB中,有一個分割的視窗則可顯示打過的指令(或稱為歷史指令窗)只要在打過的指令上一點,執行之結果可以重來。如此反覆使用指令則更方便了。

 雖然凡事均由指令窗開始,但實際上它亦可以將一連串命令貯存在一個檔案中,利用這個檔案名稱就可以創造另一個新指令,只要到指令窗一輸入,所有檔案內之指令就集體依序執行。這種可執行的檔案稱為M-files,因為其檔案名稱之字尾均以 ".m"附屬,所以得名。例如, myfirst.m 即表示其檔案名稱為 " myfirst",檔案型式為 M-file開始時只要將目錄指向存放該檔案之檔案夾,就可在指令窗下打入" myfirst"開始執行該檔內之指令群。若你不知道檔案在那兒,則可利用以前dos系統所用的方法,打入dir,即可列出在目前檔案夾中之諸M-檔案。如果在此檔案夾中找不到,亦可使用cd這個指令改變目前的目錄位置,如:

cd mydir %將目錄指向mydir

cd .. 將目指向上一層

前者跳到mydir這個檔案夾內,可以繼續使用dir觀看其下諸M-檔案,mydir這個檔案夾名稱後面是沒有附".m"字尾的,可以立即與實際檔案名稱分辨出來;後者則跳回上一層之檔案夾。注意下指令時應在">>"之後下,但有些新版本好像把">>"忘掉了,唯其空位仍然留著,可以照常下指令。其他有關系統操作指令如表1.1

1.1 系統指令

指令型式

說明

cd [/dir/..]

改變目前的目錄,或往上移動一層

date

顯示日期格式。

diary[on/off/filename]

打開╱關閉或將交談內容存於一檔案

path

顯示MATLAB搜尋之路徑

pwd

顯示目前的目錄名稱

dir, ls

顯示目前目錄下之檔案名稱

demo

示範檔案

help

輔助檔案及指令使用說明

helpwin

指令集

doc

指令使用說明

who

工作空間之變數

what

工作空間之內容


[1] APPLE Apple Computer, Inc.註冊商標。其網址為http//:www.apple.com


[1] MATLABMATHWORKS, INC.之註冊商標,其網址http://www.mathworks.com

1.2 指令使用原則

 

如前所言,MATLAB 是一種陳述性之語言,亦就是說你輸入一段陳述之指令,MATLAB 就替你翻譯並執行、輸出結果,其基本語法與其他電腦語言相差不遠。最常用的語法是:

>>指令陳述(expression )

>>指令名稱(輸入參數 )

>>[輸出變數(variable)] = 函數名稱(輸入參數 )

指令陳述通常由操作元、函數名稱及變數名稱組成。指令陳述之後會將其輸出變數之結果存於變數中,或顯示在顯示在螢幕上或顯示在圖視窗中。若某些指令函數執行後,其輸出變數僅是中間值,不希望在視窗中顯示,則可在指令之結尾加一個分號";",則其運算結果將保留在記憶體中,暫不輸出,惟其變數值仍可供後續之用。若指定之輸出變數及等號均省略時(如第二種情況)MATLAB會自動提供一個變數 "ans" ("answer"之意) ,將其第一個參數之結果放在裡面。不過這個"ans"的變數只是暫時的,其內容隨著下指令的過程而改變。因此最好的方法是自已指定一個適當的變數名稱。

一個指令陳述通常均以"Enter"鍵結束,表示指令下達完成。但有些指令陳述也許會很長,若超過一行時,可以在適當位置後加上三個點(""),然後再將後續部份延續到下一行,此三點代表延續至下一行。若指令陳述很短,也可以多條指令陳述共置一行,此時每一陳述後面加一個逗點(",")或分號(";")分號表示抑制顯示變數內容;逗點則否

在指定變數、函數、指令名稱時,須注意大小寫,因為MATLAB 對它認定甚為嚴格,故myfirstMYFIRST是兩個完全不同的檔案名稱。

執行MATLAB時,每次均會提供一個工作(workspace),以記錄所指定的變數名稱及內容。所以有時使用MATLAB 過久可能會製造許多不需要的變數名稱。若你的RAM夠大,自無所謂,但若能養成習慣將不要的變數清除,會使MATLAB 的作業顯得更有效率。你可以下清除指令,將某一個變數清除,如:

>>clear myfirst

>>clear

此時在工作間之myfirst變數將會被刪除,若僅打clear,則所有變數均被清除。若要保留變數內容後用,則可將所有之變數內容儲存,只要打一個save 指令:

>>save

此時MATLAB會將所建立之變數存在一個叫MATLAB.mat的檔案,下次再進入時,只要利用load指令即可將其叫進來。其他與檔案操作有關之指令請參看表1.2

在運算或顯示過程中,若有運算無法停止,或想中輟運行時,可以按CTRL-C 停止,此時會仍停留在MATLAB 的模式內,可以接受下一步的指令。

MATLAB 本身也有內建的常數,例如eps (epsilon)是一個10-52次方之小數,可以作為反覆運算時比較之用;而inf表示很大的值另外pi之值等於圓周率π,但須用小寫。

 

 

1.2有關檔案之指令

指令型式

說明

delete

刪除檔案

load

讀取存於matlab.mat檔中之變數於工作空間

save

儲存工作空間之變數於matlab.mat檔中

type

顯示檔案內容

edit

編輯檔案內容

1.3 變數之型態

Matlab之變數並不需要任何型態之宣告。當它碰到一個新的變數名稱時,便會自動設定該變數及其適當之儲存空間。若變數已經存在,則會將其改變新值,必要時會另安排新儲存位置,例如:


>>no_of_people=100
no_of_people =
100

首先會為no_of _people這個新變數產生一個1x1大小之矩陣,然後將100存入此單一變數中。此時只要提到no_of _people這個變數,其值100就會取代其位置。

變數之名稱第一個字需為英文字母,其後可為文字或數字,也可以使用下底線,但不能使用"+-*/"等屬於操作用之符號。其大小寫代表不同的變數。因此,John 與john、 jOhn等均不相同。變數長度有特定的長度,以namelengthmax這個變數決定之,本版之設定長度為63,故超過63個以上之變數並不採認。當然變數之長度太長,使用上也不方便。而且必須注意變數不能使用中文。

 

1.4 數值之型態

數值仍然沿用傳統之十位數,可用小數點、正負前導符號等。科學表示法則使用e作為表示次方值。屬於虛數則直接在數值後加上i或j。下面幾個例子均為合法之數值型態:

  • 100
  • -109
  • 0.009
  • 5.6789
  • 1.2e-22
  • 6.56e21
  • 1.023i
  • -7.9j
  • 1e6i

上述數值儲存時均以IEEE長格式浮點標準。其有效數字約為十六位。小數位數之區間為10e-308至10e+308之間。

format指令

數值存在電腦中,係以數值型態決定,包括單精度與雙精度兩種,而整數是介於-128~+127之間。一般為顯示成所需之位數,則可使用format之指令。其型式如下:

format short/ short e /short g /short eng/long / long e /long g / long eng

上述格式中,short代表顯示五位數;long顯示十五位數(雙精度)或七位數(單精度)。另外e代表浮點格式;g 代表固定或浮點格式,依最適之型式而定;eng則以工程有效數值表示。

例如:


>>format short; pi
ans = 3.1416

>>format long; pi
ans = 3.14159265358979

>>format short e; pi
ans = 3.1416e+000

>>format long e; pi
ans = 3.141592653589793e+000

>>format short g; pi
ans = 3.1416

>>format short eng; pi
ans = 3.1416e+000

>>format long, pi, single(pi)
ans = 3.14159265358979
ans = 3.1415927

除此而外,format亦有兩項指令格式有時也可以應用,例如:


>> format bank %銀行用於計算貨幣的兩位數
>> pi
ans = 3.14

>> format rat %以近似分數表示
>> pi
ans = 355/113

 

1.5 操作元

下列為常用的操作元:

  • + 加
  • - 減
  • * 乘
  • / 除
  • \ 左除(線性代數用)
  • ︿ 乘方
  • ' 移置及複數共軛
  • ( ) 優先運算

 

1.6 基本函數

除前述之namelengthmax函數外,matlab有些標準之數學函數可供應用,其中包括abs、 sqrt、 exp及 sin等常用的函數。一般負數之開方根或對數值並不顯示錯誤,而是自動轉為複數。其他高階函數如貝索及伽瑪函數等均在函數庫中。這些基本函數可用下列指令閱覽:


>>help elfun

其他更高階函數則可以這些指令參考:


>>help specfun
>>help elmat

有些內鉗函數如sqrt 、sin、cos等,屬matlab核心函數,其執行效率高,但其內碼無法察看,其他函數如gamma、 sinh等函數則寫成m檔案,可以察看其內容。有關各項函數之功用將在另外章節特別介紹,讀者也可利用help或doc檔自行查閱其功能與使用語法。

除函數外,matlab亦提供一些函數常:

  • pi =3.1416
  • i,j =虛數單位
  • eps =浮點相對精度,2^(-52)
  • realmin 浮點最小值,2^(-1022)
  • realmax 浮點最大值,(2-eps)2^(1023)
  • inf 無窮大值
  • NaN Not-a-number

上述之變數常數名稱為預設值。但設必要將其改變時,亦可加以改變。若要恢後原預設值時,可使用clear指令,如


>>format long;pi=3.14
pi = 3.14000000000000

常數值即為上述新值,若欲變更回原來值,則可使用


>>clear pi

>>pi
ans = 3.14159265358979

 

1.7簡單操作原則

 

一般加減乘除之運算中,除有括號顯示其優先權外,一般之操作優先權依序如下:^(次方)、*(乘法)、/(除法)、+(加法)及-(減法)。通常乘除屬同階,故依先後順序執行即可;加減亦屬同階,仍依順序而行。

執行範例:

>>3+4-5*6 %乘法優先

ans =

-23

>> 80-4^2*5  %指數優先

ans =

0

>> 4*10^(2/5)-3 %括號優先

ans =

7.0475

>> 4*10/pi  %pi為內藏常數值

ans =

12.7324

>> 1/inf % inf表示無窮大值

ans =

0

>> 1/eps  % eps則表示很小的值,其倒數則很大

ans =

4.5036e+015

>> A=5; B=A*pi/3; %將變數A設定為5;B設定為A*pi/3之結果,但均不顯示。

>> A=5, B=A*pi/3 %如同前項,但結果顯示於螢幕。

A =

5

B =

5.2360

其他範例:

>>rho = (10+sqrt(17))/3
rho =
4.70770187520589

>>a=abs(3+4i)
a =
5

>>(-2+sqrt(-6))/2
ans =

1.8 檔案的型式

前面已經介紹一些M-file的概念,現在可以將這種檔案的型式特別延伸說明。Matlab使用多種類型的檔案儲存資料、程式及指令執行時之對話。

MAT檔案

以儲存資料為主者,其檔案之副檔名為.mat,可以用來儲存工作間所建立之變數名稱及對應值。這種檔案較為特別,因為是屬於二進位檔案型式,故其內容僅能透過軟體辨識,無法使用文字處理器開啟觀看。唯在機器或程式處理過程,這種二進位檔所需之時間較短,也較為簡潔。就前文介紹的,這種檔案可用save及 load兩指令來進行儲存與下載。

M檔案

第二種檔案的型式雖與.mat不同,但也可以同樣儲存資料。不過資料檔案為根據ASCII的格式。這種檔案可能為試算表、文字處理器或程式產生的資料,可以經由編輯器進行編輯。其副檔名為.m,所以與一般文字檔案相同。要儲存這種檔案可以使用編輯器,也可以使用save及 load指令進行儲存與下載,但指令後面應加 –ASCII之參數。

程式檔案

第三種檔案為程式檔案。即為指令的集合檔,或稱為程式。這種檔案之副檔名仍為.m,故稱為M-file。基本上程式檔有兩種型式,分為敘述檔(Script file及函數檔(Function file)。敘述檔為一系列指令之組合,等於在指令窗下所打入之指令之群集,當然需要經過一番篩選才能免於垃圾檔。這種檔的好處是,下次要再執行相同的工作時,只要以該指令檔的名稱為指令呼叫即行。這種檔案的名稱無限制,但由於它是一群指令的重覆,故原先工作空間若有其他變數存在時,其內容也會影響執行的結果。例如:

%A script file named chord.m
% find the chord length of a right triangle.
a=3; b=4;
c=sqrt(a^2+b^2)

執行後,其結果為:

>>chord
c =
5

函數檔則是以函數的格式建立,其開頭第一行為函數之名稱及輸出與輸入參數之格式,而檔案名稱也必須與函數名稱相同。例如:

function [c]=chord(a,b)
% find a chord length c as sides of a & b are known
c=sqrt(a^2+b^2);

執行後,其結果為:

>>c=chord(3,4)
c =
5

這兩種檔案均可在編輯器中進行編輯、執行並偵錯。

抱歉!评论已关闭.