3

matlab ファイル (コード) を呼び出して実行できるビジュアル スタジオからのインターフェイスを持つことは可能ですか。

基本的に、VS の GUI と matlab のコードを含む .exe ファイルが必要です。ありがとう

4

3 に答える 3

1

あなたの質問が何であるか正確にはわかりませんが、答えは「いいえ」であると確信しています。

Visual Studio 言語 (C#、VB.NET など) のいずれかを使用してユーザー インターフェイスを構築し、そのインターフェイスで matlab スクリプトを呼び出す場合、私が認識している 2 つのオプションがあります。

1) Mathworks から matlab .NET インターフェイスを購入します。多額の費用がかかり、私は持っていないので、これがどのように機能するのか正確にはわかりません。

2) matlab コンパイラ (これにも多額の費用がかかります) を購入し、matlab コードを実行可能ファイルに「コンパイル」します。次に、コマンド ラインを使用して、選択した .NET 言語からその実行可能ファイルを呼び出します。このアプローチの問題点は、matlab スクリプトにデータを渡す唯一の方法が、コマンド ラインからスクリプトを呼び出すことであるということです。通常の回避策は、コマンド ラインからの呼び出しで txt ファイルまたは csv ファイルの場所を渡し、matlab スクリプトの最初の部分をこの txt ファイルまたは csv ファイルからのデータの取得専用にすることです。このアプローチのもう 1 つの問題は、多数の matlab スクリプトを呼び出したい場合、「コンパイルされた」matlab スクリプトを呼び出すたびにバックグラウンドで、実際には、matlab コンパイラ ランタイムと呼ばれるビーストを通じて、すべての matlab ランタイム ライブラリの新しいインスタンスを作成しています。これが、「コンパイル済み」と言う理由です。これは、実行時にまだ解釈されるため、実際にはコンパイルされていないためです。

編集

VB.NET を使用して matlab スクリプトを呼び出すには、次の方法を試してください。

    '#Get the matlab executable info
    Dim MatlabStartInfo As New ProcessStartInfo
    MatlabStartInfo.FileName = "cmd.exe"
    MatlabStartInfo.WindowStyle = ProcessWindowStyle.Maximized
    MatlabStartInfo.Arguments = "/C " & Chr(34) & Chr(34) _ 
    & "C:\Path\To\Matlab\Script\Matlab_Script.exe " & Chr(34) & " " & Chr(34) _
    & MatlabScriptInputArgument & Chr(34) & Chr(34)

    '#Run the matlab executable
    Using MatlabProcess As Process = New Process
        MatlabProcess.StartInfo = MatlabStartInfo
        MatlabProcess.Start()
        MatlabProcess.WaitForExit()
    End Using

ここで、MatlabScriptInputArgument は、matlab 関数への引数を含む文字列です (上記のコードは 1 つの入力のみを想定しています)。

于 2012-09-19T08:33:40.287 に答える
0

Visual Studio ではありませんが、Visual Studio Code MatLab拡張機能があります。

于 2016-02-08T22:35:50.523 に答える