Matlab是三大數學軟件之一,它在數學類科技應用軟件中在數值計算方面數一數二。Matlab能夠進行矩陣運算、繪製函數和數據、實現算法、建立用戶界面、鏈接其餘編程語言的程序等,主要應用於工程計算、控制設計、信號處理與通信、圖像處理、信號檢測、金融建模設計與分析等領域。本示例程序實現了PIESDK調用Matlab函數功能(peaks函數),從而使PIE SDK能夠與Matlab緊密結合。算法
Matlab自定義函數是一個*.m腳本文件,文件內容以function [返回值]=[函數名]([參數1,參數2])開始,且一般將文件名和函數名保持一致。編程
Matlab提供了deploytools工具能夠將matlab函數編譯爲.Net可用的DLL,從而方便.Net程序直接引用(運行須要安裝MCRInstaller)。編譯過程參考:數組
https://blog.csdn.net/zuo_csdn/article/details/53518963.編程語言
本示例採用Matlab 2014a 和 Matlab 2014a MCRInstaller(MCR8.3),單獨運行示例程序需安裝Matlab 2014a MCRInstaller(MCR8.3),請肯定版本是否正確編輯器
編譯過程須要注意:ide
① 若出現mcc錯誤,緣由是matlab未破解徹底,須要將破解文件把install.jar以及相應位數的三個文件(compiler.dll,mcc.exe,libmwservices.dll)複製到對應位置替換函數
② 注意.Net版本以及32位64位,這與Matlab/MCRInstaller有關係。工具
③ .Net項目生成位數必定與Matlab編譯的庫位數相同ui
第一步spa |
在Command Window窗口中輸入mbuild –setup查看編譯器,將編輯器設置爲vs |
第二步 |
安裝MCRinstaller.exe,在matlab安裝目錄下toolbox\compiler\deploy\win64 |
第三步 |
註冊mwcomutil.dll,在\bin\win64中 |
第四步 |
編寫.m文件並調試經過 |
第五步 |
在Command Window窗口中輸入deploytool。將.M編譯生成dll,在彈出的deploytool窗口中: 1) 選擇Library Compiler 2) 在Application type 項中選擇 .NET Assembly 3) 在Exported Functions中點擊+號,添加.M文件 4) 在下方填寫DLL的類名和包含的方法名稱 5) 右上角點擊Package |
第六步 |
將生成的DLL複製到.Net程序目錄下並添加引用 |
第七步 |
若是使用了數組,須要將MWArray.Dll也引用上並複製到程序輸出目錄下 |
第八步 |
調用DLL中的方法 |
接口/類 |
方法 |
說明 |
|
|
|
項目路徑 |
百度雲盤地址下/PIE示例程序/14.SDK拓展開發/ 02PIESDK與Matlab結合/ BlendWithMatlab |
數據路徑 |
百度雲盤地址下/PIE示例數據/柵格數據/ |
視頻路徑 |
百度雲盤地址下/PIE視頻教程/14.SDK拓展開發/ 02PIESDK與Matlab結合.avi |
示例代碼 |
|
1 /// <summary> 2 /// Matlab 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 public FormMatlabTest () 7 { 8 InitializeComponent(); 9 //運行須要安裝MCRInstaller 10 DonetTest.TestClass testClass = new TestClass(); 11 //調用matlab函數,返回值result爲圖像數組 12 MWArray result = testClass.DonetTestFunc(); 13 } |