本文主要給大家分享使用matlab編寫代碼,完成課程設計、畢業設計或者研究項目時,matlab調試程式的技巧和方法。 快速完成一個項目,最簡單的方法就是利用前人的開源代碼,然後根據自己項目的具體需求和參數,對已有代碼進行調試,並增加或刪減部分功能,最終實現自己項目的全部功能。所謂“站在前人的肩膀上... ...
轉載請標明出處:專註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.m,test.m或中文命名的m文件就是主程式文件。
如果上面的方法不能幫你找到主代碼文件,你就需要逐個m文件打開,通過代碼的內容來判斷是否是主代碼了:
如果有m文件是以clear all,clc等清空命令開始的,通常這個文件就是主程式文件;
如果有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軟體是否自帶該函數。