我有一些用Matlab编写的代码但是我希望从C#控制台应用程序中调用这段代码。
我不需要将任何数据从Matlab返回到我的应用程序(尽管如果很容易看到的话)。
似乎有一些选择,但不确定哪个是最好的。速度并不重要,因为这将是一项自动化任务。
答案 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();
}
}