調試和運行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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...