如何从c#用户界面运行matlab文件

时间:2016-11-27 22:33:12

标签: c# matlab

我有一个C#应用程序,它在m文件中创建用户界面和matlab功能。我需要做的是,当C#应用程序成功编译并打开用户界面时,我按下界面上的一个按钮,它使matlab运行m文件,同时还执行按钮按下事件应该执行的任务。目的是同时运行C#应用程序和matlab函数(同步)。

1 个答案:

答案 0 :(得分:0)

假设这是你的matlab函数:

function [output] = YourMatlabFunction( Input )
   %
   % your code here
   %
end

然后你可以用你的C#代码写一下:

Type MatlabType = Type.GetTypeFromProgID("Matlab.Desktop.Application");
Matlab.MLApp matlab = (MLApp.MLApp)Activator.CreateInstance(MatlabType);

matlabGoTo = "cd " + "('" + pathOfYourFile + "')"; 
matlab.Execute(@matlabGoTo);

object result = null;
matlab.Feval("YourMatlabFunction", 1, out result, input);
object[] res = result as object[];

要保持流程并行运行,可以使用Invoke命令。这将并行执行您的操作。以下是documentation的链接。