0

任何人都知道如何在 VB.NET 中做 MATLAB COM 自动化?因为我真的不能让我的程序使用 NE builder 运行。我尝试使用此处记录的 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 方面。

问问自己:你期望函数返回什么?

如果上面的代码是完整的,你既没有定义也a没有b在 matlab-session 中定义,所以 matlab 当然会抱怨a没有被定义。

尝试

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

反而。

于 2014-01-30T07:52:27.833 回答