2011-06-22 115 views
0

我有使用C#.NET實現的UI和MATLAB開發的圖像處理程序。因此,我需要知道將MATLAB集成到C#.NET中以將這兩個過程作爲一個系統使用的方法.....如何將MATLAB集成到C#中?

+2

這是你在找什麼? http://stackoverflow.com/questions/434331/interoperating-between-matlab-and-c – Reniuz

回答

0

如何從C#/ NET內調用用戶定義的MATLAB函數:

予詳細說明一次here。對於這種集成方法,您需要使用matlab的部署工具,以便將您的matlab函數編譯爲可由C#/ .NET引用的dll程序集。

總之,這些步驟如下:

1)寫您的MATLAB功能(M檔),並保存它們。你會調用這些函數從C#/。NET

2)打開部署工具(部署工具)MATLAB和添加所有的MATLAB .m文件的包,命名爲例如MyMatlabFunctions.prj

3 )添加一個類來部署包名爲的MyMatlabClass。這個類將包含matlab函數的.NET翻譯(或編譯)。

4)使用deploytool構建包MyMatlabFunctions.prj。生成的MyMatlabFunctions.dll將在我們的Visual Studio項目中引用。

5)加入MATLAB相關引用(DLL的)MatCode.dllMWarray.dll到Visual Studio項目。

6)編寫調用你的matlab函數的dll轉換的C#/ .NET方法。下面是一個簡單的例子:Matrix Addition(addMatrices.m)

static public void SimpleMatrixAddition() 
{ 
    double[,] a = { { 2, 3 }, { 5, 6 }, { 8, 9 } }; //Matrix 1 
    double[,] b = { { 1, 2}, { 4, 5}, { 7, 8} }; //Matrix 2 

    MWNumericArray arr1 = a; 
    MWNumericArray arr2 = b; 

    MyMatClass obj = new MyMatClass(); 

    // call matlab function (addMatrices.m) 
    MWArray result = (MWNumericArray)obj.addMatrices((MWArray)arr1, (MWArray)arr2); 

    // display matlab matrix 
    Console.WriteLine("matlab matrix:\n" + result); 
    Console.ReadKey(); 
}