2011-06-22 70 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(); 
}