




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、電子科技大學MATLAB應用程序接口應用程序接口電子科技大學MATLAB 混合編程的混合編程的3個例子個例子1.MAT文件的讀寫2.C語言調用MATLAB編譯器生成的DLL模塊3.Matlab調用C語言編寫的MEX文件電子科技大學MAT文件的讀寫文件的讀寫MAT文件由128bytes MAT 文件頭和尾隨其后的數據單元組成,每個數據單元頭部都有一個8字節的標志,表示這個數據單元里有多少數據,以及以什么方式讀寫這里的數據。一般讀寫方式有16位、32位、浮點或別的形式。MAT文件的結構如右圖電子科技大學MAT文件的讀寫文件的讀寫MATLAB 提供的用于操作 MAT 文件的 API 函數封裝于兩個標
2、準庫文件中:libmat.lib 和 libmx.lib。前者用于對MAT文件的操作,后者用于對MAT文件中矩陣的操作。這兩個庫文件對于不同語言和不同版本的編輯器而有所不同,存放在binwin32相應子文件夾中。此外,在externinclude 中有與前面兩個標準庫文件對應的.def 文件:libmat.def、libmx.def。其導出函數的原型位于同一目錄下的 mat.h和 matrix.h中,mat.h包含了 MAT文件的創建、 讀寫等函數的定義;matrix.h包含了MATLAB中基本的數據類型、 矩陣的定義和操作方法。電子科技大學MAT文件的讀寫文件的讀寫一個實例小程序,用于將BC
3、I腦電數據CNT格式轉變為MAT格式數據電子科技大學C語言調用語言調用MATLAB編譯器生成的編譯器生成的DLL模塊模塊09年腦電麻醉深度檢測項目電子科技大學C語言調用語言調用MATLAB編譯器生成的編譯器生成的DLL模塊模塊09年腦電麻醉深度檢測項目流程圖:信號處理模塊:function ADep=AD(EEG,SampleRate)數據讀取/分段處理和顯示綜合評估復雜度特征爆發抑制特征雙頻指數特征輸出麻醉深度指標*_matout.datWFDB數據Config.ini控制檢測電子科技大學C語言調用語言調用MATLAB編譯器生成的編譯器生成的DLL模塊模塊VC編寫的界面調用MATLAB編寫的
4、函數function ADep=AD(EEG,SampleRate)電子科技大學C語言調用語言調用MATLAB編譯器生成的編譯器生成的DLL模塊模塊MATLAB編譯器的配置電子科技大學C語言調用語言調用MATLAB編譯器生成的編譯器生成的DLL模塊模塊MATLAB編譯器MCC 編譯一個C動態庫電子科技大學C語言調用語言調用MATLAB編譯器生成的編譯器生成的DLL模塊模塊MATLAB編譯器MCC 編譯一個C+動態庫mcc -B cpplib:DatComp DatProcess.m電子科技大學C語言調用語言調用MATLAB編譯器生成的編譯器生成的DLL模塊模塊MATLAB編譯器MCC 編譯一個
5、C+動態庫mcc -B cpplib:DatComp DatProcess.m電子科技大學補充:函數庫的簡介補充:函數庫的簡介 對函數庫的鏈接是放在編譯時期(compile time)完成的.所有相關的對象文件(object file)與牽涉到的函數庫(library)被鏈接合成一個可執行文件(executable file) (完整復制或提供地址)(1).h與.lib是必須的,dll是運行時需要的。 (2)靜態庫只有lib文件,那么這個lib文件是靜態編譯出來的,索引和實現都在其中。 (3)動態庫有兩個文件,一個是引入庫(.LIB)文件,一個是DLL文件。引入庫文件包含被DLL導出的函數的名
6、稱和位置,DLL包含實際的函數和數據,應用程序使用LIB文件鏈接到所需要使用的DLL文件,庫中的函數和數據并不復制到可執行文件中,因此在應用程序的可執行文件中,存放的不是被調用的函數代碼,而是DLL中所要調用的函數的內存地址,這樣當一個或多個應用程序運行是再把程序代碼和被調用的函數代碼鏈接起來,從而節省了內存資源。電子科技大學C語言調用語言調用MATLAB編譯器生成的編譯器生成的DLL模塊模塊對 CB的編譯器環境進行設置。 在Project-options-directory里面設置include和lib的路徑,源代碼中加入頭文件 Datcomp.h,項目中加入 libmat.lib libm
7、x.lib mclmcrrt.lib 以及 MCC生成的Datcomp.lib電子科技大學C語言調用語言調用MATLAB編譯器生成的編譯器生成的DLL模塊模塊對 VC的編譯器環境進行設置。 在Tool-options-directory里面設置include和lib的路徑,項目中加入 libmat.lib libmx.lib mclmcrrt.lib 以及 MCC生成的Datcomp.lib電子科技大學C語言調用語言調用MATLAB編譯器生成的編譯器生成的DLL模塊模塊電子科技大學Matlab調用調用C語言編寫的語言編寫的MEX文件文件MEX文件的源程序由兩個部分組成:(1)入口子程序 mex
8、Function。其作用是在MATLAB系統與被調用的外部子程序間建立通信聯系。函數中有四個參數nlhs、plhs、nrhs和prhs。函數原型如下:void mexFunction(int nlhs, mxArray *plhs,int nrhs, const mxArray *prhs)這里nlhs是輸出數據的個數plhs是指向mxArray(MATLAB中所有數據都由mxArray定義)的輸出數據的指針nrhs是輸人數據的個數,prhs是指向mxArray的輸入數據的指針。(2)用戶子程序。包含MEX文件中完成計算功能的程序代碼,計算子程序可以是普通的C語言程序按照C語言規則編寫即可。計
9、算子程序由入口子程序調用。電子科技大學Matlab生成生成MEX文件:文件:mex setupmex getname.c生成文件后綴生成文件后綴:*.mexw32電子科技大學MATLAB 混合編程的注意事項混合編程的注意事項選擇合適的MATLAB版本CB 推薦 matlab 2007B電子科技大學MATLAB 混合編程的注意事項混合編程的注意事項C語言中使用這種調用形式最好try MRC_FUNCTION()catch (const mwException& e) strtemp.sprintf(matlab error:%sn,e.what(); ShowMessage(strtemp);MRC版本必須與編譯所用的MATLAB匹配編譯時使用不同文件名,且盡量按照MATLAB的文件命名要求,如mcc -B cpplib:DatComp DatProcess.m電子科技大學M
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧裝備制造職業技術學院《基礎和聲(一)》2023-2024學年第二學期期末試卷
- 山東省濟寧兗州區七校聯考2024-2025學年初三模擬訓練(三)數學試題含解析
- 江蘇省無錫錫東片2025屆初三語文試題中考模擬試題含解析
- 五邑大學《開放性實驗》2023-2024學年第二學期期末試卷
- 蘆溪縣2025年數學三下期末統考模擬試題含解析
- 遼寧稅務高等專科學校《機電工程專業英語》2023-2024學年第一學期期末試卷
- 嘉興職業技術學院《臨床流行病學》2023-2024學年第二學期期末試卷
- 擔保協議書的范例二零二五年
- 二零二五場地轉租協議書
- 知識產權委托代理協議書二零二五年
- 中央空調系統維保服務報價清單
- 急性左心衰搶救應急預案
- 孕產婦高危五色管理(醫學講座培訓課件)
- 8.3 法治社會 課件高中政治統編版必修三政治與法治
- 豆腐制品購銷協議
- 智鼎在線測評28題答案
- 青少年無人機課程:第一課-馬上起飛
- 公路養護施工組織設計 公路設施、交安設施、公路綠化日常維護管理施工方案
- 2024年國家義務教育質量監測-八年級心理健康考核試題
- 3班主任基本功競賽:主題班會《我本是高山》教學課件
- 黃金銷售合同書
評論
0/150
提交評論