官术网_书友最值得收藏!

2.1 M文件

MATLAB命令有兩種執(zhí)行方式:一種是交互式的命令執(zhí)行方式,用戶在命令行窗口逐條輸入命令,MATLAB逐條解釋執(zhí)行,這種方式操作簡單、直觀,但速度慢,中間過程無法保留;另一種是M文件的程序設(shè)計方式,用戶將有關(guān)命令編成程序存儲在一個文件(擴(kuò)展名為.m)中,MATLAB依次執(zhí)行該文件中的命令,這種方式可編寫調(diào)試復(fù)雜的程序,是實際應(yīng)用中主要的執(zhí)行方式。

2.1.1 M 文件的建立

M文件是由命令或函數(shù)構(gòu)成的文本文件,可以用任何文本編輯程序來建立和編輯,一般常用且最為方便的是使用MATLAB提供的編輯器。M 文件有命令文件(也稱主程序文件)和函數(shù)文件兩種,命令文件可包含多個函數(shù)文件。

1.打開編輯器

MATLAB有 “腳本” 和 “實時腳本” 兩種文件,分別對應(yīng) “編輯器” 和 “實時編輯器”。“實時腳本” 和 “實時函數(shù)” 是交互式文檔,在 “實時編輯器” 中將MATLAB代碼與格式化文本、方程和圖像組合到一起,并將其顯示在創(chuàng)建的代碼右側(cè),其他功能與 “編輯器” 完全相同。打開MATLAB編輯器有以下3種方法:

(1)單擊操作桌面工具欄上的 “新建腳本” 按鈕或 “新建”→“腳本” 菜單。

(2)在命令行窗口輸入命令 “edit”,按 〈Enter〉 鍵。

(3)使用快捷鍵,按 〈Ctrl+N〉 鍵。

打開的編輯器如圖2-1所示。

2.建立新的M 文件

在編輯器的文檔窗口輸入文件內(nèi)容,輸入完畢后,可以直接運行該文件,也可以先保存文件。單擊快捷鍵 〈Ctrl+S〉 或單擊工具欄的 “保存”→“保存”(或 “另存為”)按鈕,彈出 “選擇另存的文件” 對話框,默認(rèn)的存盤名稱是Untitled。

圖2-1MATLAB編輯器

注意:M文件存放位置一般是MATLAB默認(rèn)的用戶工作目錄,當(dāng)然也可以選擇其他的存放目錄。

例2-1】 編寫一個M命令文件,將變量a,b值互換。

首先打開文本編輯器,輸入以下內(nèi)容:

在文本編輯器窗口菜單欄和工具欄的下面有3個區(qū)域,右側(cè)的大區(qū)域是程序窗口,用于編寫程序;最左面區(qū)域顯示的是行號,每行都有數(shù)字,包括空行,行號是自動出現(xiàn)的,隨著命令行的增加而增加;在行號和文本之間有一些小橫線,這些橫線只有在可執(zhí)行的行上才有,而空行、注釋行、函數(shù)定義行等行前面都沒有,在進(jìn)行程序調(diào)試時,可以直接在這些橫線上單擊,能夠設(shè)置或去掉斷點,斷點是為了觀察程序的運行狀況而設(shè)置的暫停點。

3.運行M 文件

輸入文件內(nèi)容并檢查后,單擊 〈F5〉 或工具欄中的 “運行” 按鈕,在出現(xiàn)的 “選擇要另存的文件” 對話框中,輸入文件名myfile.m(以上例為例),單擊 “保存” 按鈕。如果改變存盤目錄,會彈出 “Matlab 編輯器” 對話框,單擊 “更改文件夾” 按鈕即可。在命令行窗口中,可看到輸出:

前兩個是a、b的原值,后兩個是交換后的a、b值。

注意:當(dāng)再次運行保存過的文件時,不會出現(xiàn) “選擇另存的文件” 對話框,而直接存盤運行。

請思考:不使用變量c,只通過兩個矩陣的加、減運算,能否交換數(shù)據(jù)?

4.打開已有的M 文件

打開已有的M文件,也有以下3種方法。

1)命令按鈕操作:單擊工具欄的 “打開” 按鈕,從中選擇要打開的文件。

2)命令操作:在命令行窗口輸入命令 edit<文件名>,回車后則打開指定的 M 文件。如果文件不在當(dāng)前路徑下,還需在文件名前加上路徑。例如打開上例的文件,可在命令行窗口的>>提示符后輸入edit myfile.m;

3)快捷鍵操作:按 〈Ctrl+O〉 組合鍵,在打開的 “Open” 對話框中選擇要打開的文件。

2.1.2 M 文件的調(diào)試

在文件設(shè)計過程中,或多或少都會出現(xiàn)一些錯誤,一般可以歸納為語法錯誤和算法錯誤兩種:語法錯誤通常是在程序輸入時產(chǎn)生的,如函數(shù)名拼寫錯誤、括號不匹配等問題。由于這些錯誤的存在,文件程序不能完成全部運行過程,會在發(fā)生錯誤處停止運行,并在命令行窗口顯示錯誤提示信息,因此這些錯誤在運行的過程中就能夠發(fā)現(xiàn),可以直接調(diào)試修改;算法錯誤是由于解題思路不正確或?qū)栴}的理解不準(zhǔn)確而引起的,通常在運行時不會有錯誤提示信息,只有發(fā)現(xiàn)計算結(jié)果有較大的偏差、不符合設(shè)計要求、產(chǎn)生了意想不到的結(jié)果等情況時,才能根據(jù)結(jié)果的差異進(jìn)行分析和判斷,這可能是一個比較復(fù)雜的過程,通常需要利用文本編輯器調(diào)試。

1.直接調(diào)試法

1)如果在錯誤信息中指出了出錯的行號,可先根據(jù)錯誤信息檢查該語句是否存在語法錯誤或運行中變量尺寸不一致等情況。

2)檢查所調(diào)用函數(shù)或命令的拼寫是否正確,括號(包括方括號和圓括號)是否配對,各種流程控制語句是否匹配(如for與end、while與end、switch與end等)。

3)檢查所調(diào)用的函數(shù)或載入的數(shù)據(jù)文件是否在當(dāng)前目錄或搜索路徑上。

4)將重點懷疑的命令行后的分號刪除,使得計算結(jié)果能夠?qū)崟r地顯示在屏幕上,作為查錯的依據(jù),根據(jù)顯示的結(jié)果判斷問題的所在。

5)如果懷疑某個函數(shù)文件有問題,可以在該函數(shù)文件的函數(shù)定義行前加 “%”,使其函數(shù)體成為命令文件(因為命令文件中的變量存儲在工作空間中,可以在工作空間窗口和數(shù)組編輯器觀察修改),調(diào)好后再改回函數(shù)文件。

2.文本編輯器的調(diào)試功能

1)設(shè)置斷點。設(shè)置斷點是高級語言中程序調(diào)試的重要手段之一,斷點是在程序特定位置設(shè)置的中斷點,當(dāng)程序運行至斷點處時會暫停運行,此時可通過檢查相關(guān)變量的內(nèi)容等方法確定程序的運行是否正確。根據(jù)需要,可以在程序中設(shè)置一個或多個斷點,設(shè)置斷點后,可以控制程序按程序行逐行向后繼續(xù)運行,也可以控制程序繼續(xù)運行到指定的程序行。在行號和文本編輯區(qū)之間的小橫線上單擊鼠標(biāo)就可以設(shè)置或去掉斷點,設(shè)置的斷點顯示為紅色圓點,如圖2-2所示。

圖2-2 設(shè)置的斷點

2)程序調(diào)試。設(shè)置斷點后運行程序,就會停止在第一個斷點處,這時可以觀察斷點前的程序運行結(jié)果,檢查工作空間中的變量數(shù)值。工具欄中的按鈕功能如下。

① 步進(jìn):單步執(zhí)行。每單擊一次,程序運行一次,但不進(jìn)入函數(shù)。

② 步入:單步運行。遇到函數(shù)時進(jìn)入函數(shù)內(nèi),仍單步運行。

③ 步出:停止單步運行。如果是在函數(shù)中,跳出函數(shù);如果不在函數(shù)中,直接運行到下一個斷點處。

④ 運行到光標(biāo)處:從當(dāng)前位置運行到光標(biāo)所在的位置。

⑤ 繼續(xù):繼續(xù)運行。

⑥ 退出調(diào)試:退出本次調(diào)試,但保留斷點。

3)調(diào)試結(jié)束。在斷點上單擊,取消斷點或單擊 “斷點”→“取消斷點” 按鈕。

主站蜘蛛池模板: 塘沽区| 资源县| 建水县| 辉南县| 星子县| 石渠县| 兴山县| 桃园市| 南丹县| 四平市| 尼玛县| 社旗县| 包头市| 腾冲县| 定远县| 晋城| 绥德县| 沾益县| 无为县| 忻城县| 襄汾县| 丹棱县| 家居| 南乐县| 深圳市| 沾益县| 隆尧县| 濉溪县| 汶川县| 武鸣县| 鲁甸县| 平利县| 新和县| 吉木乃县| 沂水县| 镇原县| 博湖县| 墨竹工卡县| 丰宁| 合川市| 石景山区|