0
votes

Anyone knows how to do MATLAB COM autiomation in VB.NET? Since I really can't make my program works using the NE builder. I tried using the COM automation as documented here: http://www.mathworks.com/help/matlab/matlab_external/call-a-matlab-function-from-visual-basic-net-client.html

Again, my program is so simple. Here's the matlab code:

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

Here's the VB code:

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

The result that I'm getting that is showing in the textbox is: ??? Undefined function or variable 'a'. I already made sure that the COM reference is already added.

But when I tried changing the code to this it is working. By the way, version is a matlab command used to show the version of the MATLAB.

result = Matlab.Execute("version")

I hope you can help me with this. I really needed this. Thanks

1

1 Answers

2
votes

Everythings working perfect - COM-wise.

Ask yourself: what did you expect the function to return?

If the code above is complete, you defined neither a nor b in the matlab-session, so matlab of course complains about a not being defined.

Try

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

instead.