C#調(diào)用MATLAB函數(shù)的實(shí)現(xiàn)步驟
基本功能是:將MATLAB的函數(shù),變?yōu)镃#中類的函數(shù)成員,進(jìn)行相關(guān)調(diào)用和函數(shù)編寫。
注意點(diǎn):MATLAB函數(shù)
第一步:將MATLAB程序轉(zhuǎn)為dll
下載MCR
MCR介紹:
MATLAB Runtime(MCR)是一個(gè)共享庫、MATLAB代碼和其他文件的集合,可以在沒有安裝MATLAB版本的系統(tǒng)上執(zhí)行編譯
和打包好的MATLAB應(yīng)用程序。
想要在沒有MATLAB的情況下運(yùn)行這些應(yīng)用程序的普通用戶必須安裝MATLAB Runtime或指定MATLAB Runtime網(wǎng)絡(luò)安裝的位置。
要?jiǎng)?chuàng)建包含MATLAB Runtime的應(yīng)用程序安裝程序,必須下載與用于創(chuàng)建安裝程序的MATLAB版本和更新級別相匹配的MATLAB
Runtime安裝程序。要在沒有安裝程序的情況下分發(fā)打包的MATLAB應(yīng)用程序,最終用戶必須以相同或更新的更新級別下載與
用于編譯應(yīng)用程序的MATLAB版本相匹配的MATLAB Runtime安裝程序。有關(guān)詳細(xì)信息,請參閱安裝和配置MATLAB運(yùn)行時(shí)。
使用Matlab Runtime的人群主要分為兩種情況:
情況1: 你只是運(yùn)行別人使用Matlab開發(fā)的APP
情況2: 你需要用Matlab自己開發(fā)、發(fā)布APP
在MATLAB的“命令行窗口”輸入mctinstaller

出現(xiàn)如上,則需要安裝。
電腦能聯(lián)網(wǎng)時(shí)
在MATLAB的命令行窗口輸入compiler.runtime.download
compiler.runtime.download

再次,在MATLAB的命令行窗口輸入mctinstaller

出現(xiàn)地址說明下載成功
電腦不能聯(lián)網(wǎng)時(shí)
查詢MATLAB版本
在MATLAB的命令行窗口輸入verison
verison

然后在MATLAB的命令行窗口輸入compiler.runtime.download

發(fā)現(xiàn)不能聯(lián)網(wǎng),負(fù)責(zé)網(wǎng)址,到有網(wǎng)處,下載安裝包。


跟MATLAB版本一致就OK!
如果你是情況一:你只是運(yùn)行別人使用Matlab開發(fā)的APP
安裝Matlab Runtime比較簡單,下載完解壓后如下:雙擊上圖中的“setup.exe”即可

如果你是情況二:你需要用Matlab自己開發(fā)、發(fā)布APP
安裝Matlab Runtime方法:(注意安裝包不需要解壓)

安裝Matlab Runtime后,可以在命令行中查看Matlab Runtime的信息:

MATLAB程序打包為dll
命令行輸入deploytool

選擇library complier

選擇指定項(xiàng)、添加自己的.m文件(如果有多個(gè).m文件,在第二步全部添加即可)、修改類名(可改可不改,c#中調(diào)用時(shí)會(huì)用)


會(huì)生成如下的文件結(jié)構(gòu)

生成的dll文件在for_redistribution_files_only里

將dll引入wpf程序
將readUSBData.dll(MATLAB程序生成的dll)文件復(fù)制到C#文件目錄bin\Debug文件夾下
將MWArray.dll文件也復(fù)制到C#文件目錄bin\Debug文件夾下,位置如下

項(xiàng)目中添加引用


添加using引用 :
using MathWorks.MATLAB.NET.Arrays; using MathWorks.MATLAB.NET.Utility;
調(diào)用如下:

修改運(yùn)行的目標(biāo)平臺(tái)為 x64

修改后如下:

運(yùn)行效果如下,和MATLAB中輸出保持一致:

到此這篇關(guān)于C#調(diào)用MATLAB函數(shù)的實(shí)現(xiàn)步驟的文章就介紹到這了,更多相關(guān)C#調(diào)用MATLAB內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#中調(diào)用VB中Inputbox類的實(shí)現(xiàn)方法
本文主要介紹在項(xiàng)目中引用Microsoft.VisualBasic,間接使用VB中的各種類庫的方法,或者自己創(chuàng)建函數(shù),調(diào)用自定義方法,以實(shí)現(xiàn)InputBox相關(guān)的功能。2016-05-05
C#對二進(jìn)制數(shù)據(jù)進(jìn)行base64編碼的方法
這篇文章主要介紹了C#對二進(jìn)制數(shù)據(jù)進(jìn)行base64編碼的方法,涉及C#中Convert.ToBase64String用法技巧,需要的朋友可以參考下2015-04-04
c#求點(diǎn)到直線的投影點(diǎn)坐標(biāo)
這篇文章主要介紹了c#求直線外一點(diǎn)到該直線的投影點(diǎn),大家參考使用吧2013-12-12
在WinForm中實(shí)現(xiàn)后臺(tái)定時(shí)任務(wù)的三種完整方案
在開發(fā)Windows桌面應(yīng)用時(shí),我們經(jīng)常會(huì)遇到這樣的需求:每隔一段時(shí)間自動(dòng)檢查新消息、輪詢服務(wù)器狀態(tài)、定期備份數(shù)據(jù),或者執(zhí)行一些后臺(tái)數(shù)據(jù)處理任務(wù),本文將為你揭秘3種經(jīng)過實(shí)戰(zhàn)驗(yàn)證的解決方案,需要的朋友可以參考下2025-12-12

