我开发了一些用于语音验证的matlab函数。将Matlab代码集成到C#应用程序中
现在我想用一个应用程序为这些函数提供输入,并在matlab函数中执行这些值,并将结果再次提供给应用程序。
有没有什么特别的方法可以做到这一点?
我开发了一些用于语音验证的matlab函数。将Matlab代码集成到C#应用程序中
现在我想用一个应用程序为这些函数提供输入,并在matlab函数中执行这些值,并将结果再次提供给应用程序。
有没有什么特别的方法可以做到这一点?
Mathworks的产品名为MATLAB Builder NE。
它将为.NET或COM构建一个DLL,封装MATLAB代码。然后,您可以在任何装有MATLAB运行时(free)的机器上执行该代码。
从我所看到的,这真的只是为您的代码中的每个函数创建一个适当重载的DLL,并帮助您从.NET类型转换为MATLAB数组。最后,它仍然调用本地MATLAB代码并在MATLAB运行时运行它,所以它也是可以自行实现的(尽管这需要一些可能的重大努力)。
本摘录取自我的博客文章,演示了从MATLAB CODE http://scriptbucket.wordpress.com/category/matlab/编译.NET DLL所需的过程,这对您应该有所帮助。
using System;
using System.Windows.Forms;
using MathWorks.MATLAB.NET.Arrays;
using calculator;
namespace DemoCalculator
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var calc= new demo();
MessageBox.Show(calc.calculator((MWCharArray)textBox1.Text)[1].ToString());
}
}
}
以下链接可以帮助你解决问题。第一个使用COM对象的c#程序中使用了matlab程序,第二个链接描述了3种与程序中的matlab进行通信的方式。
http://www.codeproject.com/Articles/594636/Using-Matlab-from-a-Csharp-application
http://www.codeproject.com/Articles/5468/1-2-3-ways-of-integrating-MATLAB-with-the-NET
注意,链接网站承担MATLAB生成器工具箱,我挂在我的答案存在http://stackoverflow.com/a/11592376/940 – goric 2012-07-21 14:53:03