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