開發環境: visual studio 2019, .netframework 4.5, matlab 2018b
基本思路: 將.m
檔案(matlab
函式)打包為.dll
檔案以供c#
呼叫
matlab
端操作
編寫matlab
函式
function [x] = linear_equation_solve(a, b)
%% 求解線性方程組 ax = b
x = a / b;
end
將函式檔案打包為.dll
檔案(使用matlab compiler)
將打包得到的檔案和mwarray.dll
拷貝至需要引用的專案目錄中,打包得到的檔案一般包含$function$.dll
,$function$native.dll
,mwarray.dll
可在matlab
的安裝目錄中找到
native和非native的區別為: 用***xnative.dll在呼叫的時候,直接對引數採用了object型別,matab計算引擎會自己去識別。而非***xnative.dll都採用了精確的資料型別。參考: matlab生成c#dll ,native 與非native的效率比較
vs
端操作:將$function$native.dll
和mwarray.dll
新增至專案引用即可
using system;
using linearequationsolver;
using mathworks.matlab.net.arrays;
namespace matlabtodotnetsample, ,
};int[,] a_array = new int[,],,};
var a = new mwnumericarray(a_array);
var b = new mwnumericarray(b_array);
var result = new linearequationsolver.linearequationsolver().linear_equation_solve(a, b);}}
}
matlab呼叫c 函式
經常會遇到乙個問題,就是怎麼用matlab來呼叫已經寫好的c 下面就學習一下。首先要明白呼叫c 需要用到mex,他主要和matlab的主要介面,介面的主要入口為如下函式 void mexfunction int nlhs,mxarray plhs,int nrhs,const mxarray prh...
C 呼叫MATLAB函式 打包dll
選擇library compiler,如圖 在下面files required for your library to runzhong會自動檢測新增函式所依賴的其他函式,在library name中填寫所要生成的dll檔案的名稱,在setting設定儲存位置,如圖 1.首先配置release x6...
VC呼叫MATLAB函式
matlab 是由math works 公司於1984 年推出的數值計算及圖形處理軟體,可以實現數值分析 優化 統計 偏微分方程數值解 自動控制 訊號處理 影象處理等若干領域的計算和圖形顯示功能。其中,控制系統工具箱的集成為設計和分析各種複雜的控制系統提供了有效的方法和途徑。但是,由於 matlab...