MATLAB COM Automation出错

时间:2014-01-30 02:04:38

标签: vb.net matlab com automation com-automation

任何人都知道如何在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引用。

但是当我尝试将代码更改为此时,它正在运行。顺便说一句,版本是一个用于显示MATLAB版本的matlab命令。

result = Matlab.Execute("version")

我希望你能帮助我。我真的需要这个。感谢

1 个答案:

答案 0 :(得分:2)

每一件事都很完美 - COM-wise。

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

如果上面的代码已经完成,那么你在matlab会话中既没有定义a也没有定义b,所以matlab当然抱怨a没有被定义。

尝试

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

代替。