我有使用 C#.NET 实现的 UI 和在 MATLAB 中开发的图像处理程序。因此我需要知道一种将 MATLAB 集成到 C#.NET 中的方法,以便将这两个进程作为一个系统使用.....
问问题
3324 次
2 回答
0
如何从 C#/.NET 中调用用户定义的 matlab 函数:
我在这里详细解释过一次。对于这种集成方法,您将需要 matlab 的部署工具,以便将您的 matlab 函数编译成 C#/.NET 可以引用的 dll 程序集。
总而言之,这些是步骤:
1)编写你的matlab函数(m文件)并保存它们。您将从 C#/.NET 调用这些函数
2)在matlab中打开部署工具(deploytool),将所有的matlab m文件添加到包中,例如MyMatlabFunctions.prj
3) 添加一个类来部署包,名称类似于MyMatlabClass。此类将包含您的 matlab 函数的 .NET 翻译(或编译)。
4) 使用 deploytool 构建包MyMatlabFunctions.prj。生成的MyMatlabFunctions.dll将在我们的 Visual Studio 项目中被引用。
5) 将与 matlab 相关的引用 (dll) MatCode.dll和MWarray.dll 添加到您的 Visual Studio 项目中。
6) 编写调用matlab 函数的dll 翻译的C#/.NET 方法。下面是一个简单的例子:矩阵加法(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();
}
于 2014-07-25T20:27:11.710 回答
0
于 2011-06-22T10:55:09.843 回答