从C#运行MATLAB脚本并返回结果

时间:2016-06-08 16:27:43

标签: c# matlab batch-file process

我正在构建一个使用MATLAB后端的Windows窗体应用程序。这样做的最好,最干净的方法是什么?此外,我需要获取MATLAB输出数据并在Windows窗体程序中使用它。

到目前为止我做了什么:

  • 使用Process类我运行了一个调用MATLAB的批处理文件 程序:

       Process process = new Process();
       process.StartInfo.FileName = @"----\run.bat";
       process.StartInfo.WorkingDirectory = @"----";
       process.StartInfo.UseShellExecute = false;
       process.StartInfo.RedirectStandardOutput = true;
       process.StartInfo.RedirectStandardError = true; 
    

    Executing Batch File in C#

我可以毫无问题地运行脚本。但是,我无法从MATLAB接收输出流。我在上面的链接中尝试了所有解决方案,但它在我的特定情况下不起作用。我认为这与MATLAB有关。

1 个答案:

答案 0 :(得分:2)

最好的方法可能是使用Matlab提供的COM接口。

您需要添加对引用Matlab应用程序的C#项目的引用,然后实例化MLApp类型的对象,这将允许您调用Matlab。有关简单示例,请参阅http://www.mathworks.com/help/matlab/matlab_external/call-matlab-function-from-a-c-client.html