0

VB.NET で MATLAB COM 自動化を行う方法を知っている人はいますか? NEビルダーを使用してプログラムを機能させることは本当にできないので。ここに記載されているように、COM オートメーションを使用してみました: http://www.mathworks.com/help/matlab/matlab_external/call-a-matlab-function-from-visual-basic-net-client.html

繰り返しますが、私のプログラムはとても単純です。ここにmatlabコードがあります:

function out = addMe(a,b)
out = a + b;
end

VBコードは次のとおりです。

Public Class Form1
    Dim a As Integer = 4
    Dim b As Integer = 10
    Dim result As String
    Dim Matlab As Object

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Matlab = CreateObject("Matlab.Application")
        result = Matlab.Execute("cd C:\Users\Elvin Gentiles\Desktop\Program")
        result = Matlab.Execute("addMe(a,b)")
        TextBox1.Text = result
    End Sub
End Class

テキストボックスに表示されている結果は次のとおりです。未定義の関数または変数 'a'。COM参照がすでに追加されていることを確認しました。

しかし、コードをこれに変更しようとすると、機能しています。ちなみに、versionは MATLAB のバージョンを表示するための matlab コマンドです。

result = Matlab.Execute("version")

これで私を助けてくれることを願っています。私は本当にこれが必要でした。ありがとう

4

1 に答える 1

2

すべてが完璧に機能しています-COMに関して。

自問してみてください: 関数が何を返すことを期待していましたか?

上記のコードが完了している場合、matlab-session にaも定義されていないため、当然、matlab は定義されていないと文句を言います。ba

試す

result = Matlab.Execute("addMe(1,2)")

代わりは。

于 2014-01-30T07:52:27.833 に答える