任何人都知道如何在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")
我希望你能帮助我。我真的需要这个。感谢
答案 0 :(得分:2)
每一件事都很完美 - COM-wise。
问问自己:你期望函数返回什么?
如果上面的代码已经完成,那么你在matlab会话中既没有定义a
也没有定义b
,所以matlab当然抱怨a
没有被定义。
尝试
result = Matlab.Execute("addMe(1,2)")
代替。