C 呼叫Matlab函式

2021-09-26 12:58:06 字數 1319 閱讀 5310

開發環境: 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.dllmwarray.dll可在matlab的安裝目錄中找到

native和非native的區別為: 用***xnative.dll在呼叫的時候,直接對引數採用了object型別,matab計算引擎會自己去識別。而非***xnative.dll都採用了精確的資料型別。參考: matlab生成c#dll ,native 與非native的效率比較

vs端操作:將$function$native.dllmwarray.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...