我已经开发了一些用于语音认证的 matlab 函数。
现在我想使用一个应用程序为这些函数提供输入,并在 matlab 函数中执行这些值,然后再次将结果提供给应用程序。
有什么特别的方法可以做到这一点吗?
Mathworks 有一个名为MATLAB Builder NE的产品可以做到这一点。
它将为 .NET 或 COM 构建一个 DLL,包装 MATLAB 代码。然后,您可以在任何安装了 MATLAB 运行时(免费)的机器上执行代码。
从我所见,这实际上只是为代码中的每个函数创建了一个具有适当重载的 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 对象的 ac# 程序中使用了 matlab 程序,第二个链接描述了在程序中与 matlab 通信的 3 种方法。
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