c#console应用程序运行matlab函数

时间:2015-04-29 10:35:03

标签: c# .net matlab

我有一些用Matlab编写的代码但是我希望从C#控制台应用程序中调用这段代码。

我不需要将任何数据从Matlab返回到我的应用程序(尽管如果很容易看到的话)。

似乎有一些选择,但不确定哪个是最好的。速度并不重要,因为这将是一项自动化任务。

1 个答案:

答案 0 :(得分:1)

MATLAB有一个详细记录的.Net界面。您需要做的事情在Call MATLAB Function from C# Client文章中介绍。

对于简单的MATLAB函数,请说:

function [x,y] = myfunc(a,b,c) 
x = a + b; 
y = sprintf('Hello %s',c); 

..归结为创建MLApp并调用Feval方法:

class Program 
{ 
    static void Main(string[] args) 
    { 
        // Create the MATLAB instance 
        MLApp.MLApp matlab = new MLApp.MLApp(); 

        // Change to the directory where the function is located 
        matlab.Execute(@"cd c:\temp\example"); 

        // Define the output 
        object result = null; 

        // Call the MATLAB function myfunc
        matlab.Feval("myfunc", 2, out result, 3.14, 42.0, "world"); 

        // Display result 
        object[] res = result as object[]; 

        Console.WriteLine(res[0]); 
        Console.WriteLine(res[1]); 
        Console.ReadLine(); 
    } 
}