matlab的命令編輯窗口(Command Window)界面主要是用來(lái)調用系統命令、調用自定義函數(m文件里定義的函數)或編寫(xiě)一些較小的代碼。在遇到需要用到比較多的代碼才能擺平的需求時(shí),在命令編輯窗口每一行都有提示輸入符號,用起來(lái)不是很方便(如前所述而且命令編輯窗口主要是用來(lái)調用命令之用),此時(shí)我們不得不求助于matlab的m文件來(lái)編寫(xiě)代碼。所以,記錄一下經(jīng)自行探索其編寫(xiě)方式后的入門(mén)過(guò)程:
版本:MATLAB 7.9.0(R2009b)
1.新建m文件
打開(kāi)matlab軟件-->file-->new-->Function m-file
經(jīng)過(guò)此步驟之后,matlab會(huì )彈出一個(gè)新的編輯窗口,并生成少許代碼如下:
function:表示編寫(xiě)的是一個(gè)函數。
output_args: 表示編寫(xiě)此函數的返回值(不同于C語(yǔ)言的是需要被返回的值無(wú)需使用return語(yǔ)句,只要將outp_args相應的參數拿到代碼中賦值即可,同一般變量的使用),各返回值間用逗號隔開(kāi)。
input_args: 此函數的輸入參數,各參數之間用逗號隔開(kāi)。
Untitled: 這是您所編寫(xiě)函數時(shí)所定義的函數名。注意:函數名和m文件名需要保持一致。如剛所創(chuàng )建的m文件在工作空間時(shí)命名為“RungeKuttaCalculate.m”則相應的函數名也需要為“RungeKuttaCalculate”,否則會(huì )引起報錯。
%: 是matlab的注釋語(yǔ)句的注釋符,相當于C語(yǔ)言中的行注釋符"//",在這里你可以描述此函數的功能,參數含義和返回值含義,使其含義更加明確。
剩余空間:從%到最后面的end部分是編輯代碼的空間。end表示此函數編輯完畢。
總結函數文件的基本結構:
function [ 輸出形參表:output1, output1...outptn ]=函數名 [輸出函數形參表:input1, input2..., inputn]
注釋說(shuō)明部分
函數體代碼部分
end
說(shuō)明:
2.編寫(xiě)代碼
(1)matlab數據類(lèi)型
Matlab中有15種基本數據類(lèi)型,主要是整型、浮點(diǎn)、邏輯、字符、日期和時(shí)間、結構數組、單元格數組以及函數句柄等。(http://hi.baidu.com/yicomrdztxbeiwd/item/37b3f246de294596823ae16c)一般在簡(jiǎn)單應用中用到的整形(用作循環(huán)變量)、矩陣、數組較多。
(2)matlab的流程控制語(yǔ)句
matlab的流程控制語(yǔ)句跟C語(yǔ)言中的語(yǔ)句差不多,只是使用的形式有點(diǎn)不同。在C語(yǔ)言中if, for, while等是使用"}"或者“;”(其中只包含一條語(yǔ)句時(shí))來(lái)結束。在matlab中他們使用的形式如下:
if語(yǔ)句
if 條件1
matlab語(yǔ)句1;
【 elseif 條件2
matlab語(yǔ)句2;
.......
else
matlab語(yǔ)句n;】
end
end來(lái)標識if語(yǔ)句內的matlab語(yǔ)句完結,如果其中有一個(gè)邏輯條件為真則執行相應的matlab語(yǔ)句,否則跳過(guò)整個(gè)if語(yǔ)句內容執行后繼語(yǔ)句。
【】?jì)热轂榭蛇x內容,根據需求而定。但是if....elseif必須匹配。
switch語(yǔ)句
switch 表達式
case 表達式1
matlab語(yǔ)句1
case 表達式2
matlab語(yǔ)句2
....
case 表達式n
matlab語(yǔ)句n
otherwise
matlab語(yǔ)句n+1
end
跟if語(yǔ)句相似,用switch下面的表達式來(lái)匹配case表達式中的內容,匹配到哪一個(gè)case表達式,相應的matlab語(yǔ)句就會(huì )被執行。
try語(yǔ)句
try
matlab語(yǔ)句1
catch
matlab語(yǔ)句2
end
try語(yǔ)句先試探性執行語(yǔ)句組1,如果語(yǔ)句組1在執行過(guò)程中出現錯誤,則將錯誤信息賦給保留的lasterr變量,并轉去執行語(yǔ)句組2。這種試探性執行語(yǔ)句是其他高級語(yǔ)言所沒(méi)有的。
for語(yǔ)句
for 循環(huán)變量=初始值:步長(cháng):終值
循環(huán)體語(yǔ)句
end
如果初始值在付給循環(huán)變量后,循環(huán)變量的值介于初始值與終值之間則執行循環(huán)體語(yǔ)句,每次執行后循環(huán)變量增加步長(cháng)值,再與終值比較是否小于終值,若還小于終值,則執行循環(huán)體語(yǔ)句,若非,則跳出for循環(huán)執行后繼語(yǔ)句。如此循環(huán)直到跳出for循環(huán)為止。
while語(yǔ)句
while(條件)
循環(huán)體語(yǔ)句
end
其執行過(guò)程為:若條件成立,則執行循環(huán)體語(yǔ)句,執行后再判斷條件是否成立,如果不成立則跳出循.
循環(huán)嵌套,個(gè)循環(huán)之間可以嵌套使用。
在m文件的函數編寫(xiě)中,撇開(kāi)讀取文件操作不談使用基本的流程控制和matlab基本數據類(lèi)型,再加上調用matlab強大的庫函數已經(jīng)可以做很多事情了,起碼做作業(yè)沒(méi)問(wèn)題了撒,用龍格-庫塔解線(xiàn)性方程組時(shí)用上面之所列舉足矣(加點(diǎn)數組定義法)。
此次筆記記錄完畢。
聯(lián)系客服