1. 程式人生 > >調試和運行matlab代碼(源程序)的技巧和教程

調試和運行matlab代碼(源程序)的技巧和教程

報錯 會同 快速 works 支持 錯誤2 說明文檔 各種後綴 被調用

轉載請標明出處:專註matlab代碼下載的網站http://www.downma.com/

本文主要給大家分享使用matlab編寫代碼,完成課程設計、畢業設計或者研究項目時,matlab調試程序的技巧和方法。

快速完成一個項目,最簡單的方法就是利用前人的開源代碼,然後根據自己項目的具體需求和參數,對已有代碼進行調試,並增加或刪減部分功能,最終實現自己項目的全部功能。所謂“站在前人的肩膀上”。

閑話少敘,我們先從最基本的matlab軟件安裝開始,已經成功安裝matlab軟件的可以直接跳過。

1. 正確安裝matlab軟件

下載matlab軟件

首先下載你想要安裝的matlab安裝文件,建議不要下載過於陳舊的版本

,至少應該是matlab2010之後的版本。因為隨著matlab版本的更新,增加了一些新的函數,並對不安全的函數使用進行了刪除。部分代碼的調試,可能由於過於陳舊的matlab版本,可能導致調試報錯。

另外,請大家支持正版,在官網購買matlab軟件或者使用其30天免費試用版。

當然購買官方正版比較適合商業應用,對於學生和科研用途,購買費用恐怕難以接受。請自行下載破解版。

安裝matlab軟件

下載軟件後的安裝方法比較簡單,這裏不再贅述,請大家移步百度經驗,搜索“matlab安裝”,會有簡單明了的安裝教程。

安裝matlab的路徑,建議沒有中文字符或者空格。這樣可以盡最大可能減少程序運行時,由於中文路徑不識別導致的錯誤。

2. 下載的代碼包裏的文件都是幹什麽的?

當我們從網絡上下載matlab的源代碼時(例如:專註matlab代碼下載的網站www.downma.com),得到的通常是代碼的壓縮包,裏面包括很多各種後綴的文件。他們都是什麽文件呢,都是幹什麽用的?

m後綴的文件:這是matlab代碼的最常用後綴,就像C++的常用後綴是cpp一樣。只要看到.m文件,你就知道這個是matlab的代碼。和C++不同的是,很多matlab的自定義函數,也是單獨定義在m文件中的。

fig後綴的文件:這個是matlab輸出的繪圖結果保存的文件,保存著各種仿真結果的曲線。此外,GUI的圖形用戶界面也是以fig文件的形式保存的。

asv後綴的文件:這個是matlab對用戶編輯時間較長的m文件自動保存的文件。對代碼的運行不起作用,是可以刪除的。

mdl後綴的文件:Simulink是matlab的另外一個強大的仿真功能。與代碼方式進行仿真的m文件不同,mdl文件主要是通過各種Simulink的模塊,進行實時仿真的文件。

mat後綴的文件:mat文件是用來存儲數據的,可以理解為matlab的小型數據庫。保存形式類似於excel表格,可以直接加載到程序中,變成相應的變量,也可以作為程序輸出結果的保存文件。

p後綴的文件:p文件是為了保護知識產權設計的一種加密文件,是不能查看的。其作用和m文件類似,封裝了自定義函數,不可以刪除。

txt、doc的文件:有一些代碼包會同時攜帶說明文件,包括程序的用途和參數,還包括程序運行時的註意事項等。還有一些簡單的matlab代碼,直接保存到文檔裏。可以直接復制到matlab中,保存為m文件,進行調試和運行。

還要一些文件不是代碼部分,而是程序要處理的源文件。例如,圖片文件jpg,bmp,gif;視頻文件avi;音頻文件wav等。這些文件的位置不要輕易改變,否則會影響到程序對這些源文件的調用。

在有些情況下,代碼包裏還有一些cpp、h後綴的C++文件。這些代碼通常是matlab和C++進行混合編程時使用。如果你的項目重點不是混合編程,忽略即可,但是不要刪除。

3. 怎麽正確啟動主程序?

Matlab的工作目錄設置

很多人都說,網上下載的代碼怎麽都運行不起來,各種報錯?其實,是你的打開方式不對

最重要一點:你的“matlab當前工作目錄”一定要是你下載的代碼壓縮包解壓後的文件夾!因為通常matlab的默認工作目錄,並不是你的代碼所在文件夾。當然,你也可以把所有代碼都解壓到matlab的默認工作目錄裏。

技術分享圖片

怎麽找到主程序文件?

如果你下載的代碼具有圖形用戶界面GUI,那麽通常情況下.fig文件就是這個代碼的主程序,你只要在確保工作路徑正確的情況下,在命令窗口輸入xxx.fig,然後回車即可。這樣用戶界面就會彈出來了。

如果你下載的是Simulink模型代碼,確保mdl文件在工作路徑,然後在命令窗口輸入Simulink,回車後即打開Simulink軟件,打開mdl文件即可,然後點擊調試運行mdl文件。此外,還直接運行mdl文件,在命令窗口輸入sim(’xxxx.mdl’, Trange)其中Trange是仿真時間。

大多數情況下,你下載的是m文件組成的matlab仿真代碼。這個時候,只要找到主程序的m文件,打開點擊調試運行按鈕即可(或者直接按F5或F9)。或者在命令窗口輸入主程序的文件名,例如xxx.m或run xxx.m,回車即可運行。

當然,如何找到主程序m文件就至關重要了:

首先,如果代碼包裏提供了說明文檔,請參照說明文檔找到主程序。

如果代碼包中沒有說明文檔指出哪個代碼是主程序,通常可以通過m文件的命名方式判斷。例如以main.mtest.m或中文命名的m文件就是主程序文件。

如果上面的方法不能幫你找到主代碼文件,你就需要逐個m文件打開,通過代碼的內容來判斷是否是主代碼了:

如果有m文件是以clear allclc等清空命令開始的,通常這個文件就是主程序文件;

如果有m文件的開始包含很多關於參數和程序用途的註釋部分,通常這個文件就是主程序文件;

如果有m文件不是自定義函數,即不是以function開頭的m文件,通常這個文件就是主程序。因為以function開頭的多數情況下是自定義函數,僅作為被調用使用;

如果所有的m文件都是自定義函數,那就表示代碼的主程序文件是以自定義函數的形式出現的。這個時候那個沒有輸入參數的自定義函數文件,就很有可能是主程序文件了;

如果所有的m文件都是自定義函數,而且都包含輸入參數,很有可能你下載到的是一個工具箱,沒有主程序,需要你根據需要自己編寫主函數,調用這些自定義函數文件。

此外,使用自定義函數的m文件,一定不是把代碼全部粘貼到命令窗口運行的,而是要使用參數調用的。

當然,主程序的m文件可能不止一個,也就是說代碼包裏包含多個不同功能的主程序。

4. 常見報錯及解決方法

錯誤1:圖片或聲音文件不存在

當你運行主程序後,命令窗口提示類似unable to find file或者file xxx doesn’t exit的錯誤,通常是因為缺少圖片或聲音等源文件導致的。

例如作者在上傳代碼時,僅僅包含了代碼部分,沒有包含要處理的圖片或聲音文件,這時候會出現找不到文件的錯誤。我們找到代碼中加載圖片或聲音文件的語句,例如imread、wavread等語句。然後根據需要的圖片或聲音文件,自己補充這個源文件。

錯誤2:函數不存在

當你運行主程序後,命令窗口提示類似Undefined function or method的錯誤,通過是某個自定義的函數文件丟失或者工作路徑不正確導致的。你要反復確認這個自定義函數的m文件是否包含在matlab的工作路徑內,然後確認當前版本的matlab軟件是否自帶該函數。

調試和運行matlab代碼(源程序)的技巧和教程