我開發了一些用於語音驗證的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