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

来源:http://www.cnblogs.com/downma/archive/2017/11/19/7862563.html
-Advertisement-
Play Games

本文主要給大家分享使用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的預設工作目錄里。

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軟體是否自帶該函數。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 遠端創建倉庫 登陸鏡像倉庫 使用 登陸遠端倉庫 生成需要發佈 修改鏡像名發佈 使用 通過容器生成鏡像 使用 通過已有容器生成鏡像 推送到遠端伺服器 使用 推送遠端伺服器 遠端查看 ...
  • 環境安裝 Go 語言支持以下系統: Linux FreeBSD Mac OS X(也稱為 Darwin) Window Linux FreeBSD Mac OS X(也稱為 Darwin) Window 安裝包下載地址為:https://golang.org/dl/。 Windows下直接下載對應的 ...
  • 使用靜態方法實現類的多態 類的封裝--升級版 繼承升級版 ...
  • 註:本文為mysql基礎知識的總結,基礎點很多若是有些不足夠,還請自行搜索。後續增加 一、mysql簡介 資料庫簡介 資料庫是電腦應用系統中的一種專門管理數據資源的系統 資料庫是一組經過電腦處理後的數據,存儲在多個文件中,而管理資料庫軟體被稱為資料庫管理系統 DBMS 而MYSQL ORACLE ...
  • [TOC] PS: 本地預覽目錄OK,但是博客園貌似不支持,那就只能這樣了。 前言(可以不看) 最開始只是想寫一篇博文,準備使用markdown,感覺很流行(github、簡書……很多都支持),而且渲染出來很好看,一直很想學,沒有合適的機會,結果拖到了現在。比起什麼python、C之類的編程語言,m ...
  • 發佈-訂閱消息模式 一、訂閱雜誌 我們很多人都訂過雜誌,其過程很簡單。只要告訴郵局我們所要訂的雜誌名、投遞的地址,付了錢就OK。出版社定期會將出版的雜誌交給郵局,郵局會根據訂閱的列表,將雜誌送達消費者手中。這樣我們就可以看到每一期精彩的雜誌了。 發佈-訂閱消息模式 一、訂閱雜誌 我們很多人都訂過雜誌 ...
  • 1. 學習了一下 AI 五子棋,順手改作 19 路的棋盤,便於圍棋通用。render.py 主要修改如下: 2. 發現 pygame 還不錯,便從網上搜索到《Beginning Game Development With Python And Pygame》,其中螞蟻游戲的 AI 表現甚好,主要代碼 ...
  • 前言 本篇將結合JDK1.6的TreeMap源碼,來一起探索紅-黑樹的奧秘。紅黑樹是解決二叉搜索樹的非平衡問題。 當插入(或者刪除)一個新節點時,為了使樹保持平衡,必須遵循一定的規則,這個規則就是紅-黑規則: 1) 每個節點不是紅色的就是黑色的 2) 根總是黑色的 3) 如果節點是紅色的,則它的子節 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...