2016-11-27 10 views
-2

私は、m-ファイルにユーザーインターフェイスとmatlab関数を作成するC#アプリケーションを用意しています。私がする必要があるのは、C#アプリケーションが正常にコンパイルされ、ユーザーインターフェイスが開かれたときに、インターフェイス上のボタンを押すと、m-ファイルが実行され、button-pressイベントが実行するタスクも実行されます。目的は、C#アプリケーションとmatlabの両方の関数を同時に(同期して)実行することです。C#ユーザーインターフェイスからmatlabファイルを実行する方法

答えて

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へのリンクは次のとおりです。

関連する問題