2015-04-29 82 views
-2

我有一些用Matlab编写的代码,但是我希望从C#控制台应用程序调用此代码。c#控制台应用程序运行matlab函数

我不需要任何数据从Matlab返回到我的应用程序(虽然如果容易,会很高兴看到)。

似乎有几个选项,但不知道哪个最好。速度并不重要,因为这将是一项自动化任务。

+2

因为我,我只回答了这个最近研究了这个,并且从字面上打开了相关的网页。这些信息不难发现或理解,您在未来提出问题之前必须做更好的研究。 –

回答

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(); 
    } 
} 
相关问题