回 帖 发 新 帖 刷新版面

主题:(Guassfans,能再麻烦你一下吗?)matlab建立BP神经网络

我的目的是:所建立的BP网络最后需要脱离Matlab运算(即使不装Matlab也可以运行),换句话说,脱离Matlab运行,把整个Matlab算法做成一个模块,最后直接调用它。应该怎么作?我听说要做成一.Dll还是什么,你能具体说下你是怎么作的吗?(我是嵌入VB)。

还有一个思路:整个过程,包括建立BP网络都用VB完成(即将BP原始算法用VB写出)

哪个更好或者说更简单?应该分别怎么做?

多谢!!

回复列表 (共13个回复)

11 楼

OK!
建立M文件Test.M
function s=test()
 global a b
 s=a+b;
 return
(Matlab6.5)中测试:
>> clear
>> global a b
>> a=1;b=2;
>> test

ans =

     3
使用Matlab 之comtool将其编译为TestDll.dll包含类名为 TestFun
建立VB工程,工程-->引用-->浏览,找到TestDll.dll并添加
程序代码:
Option Explicit
Dim mydll As TestDll.TestFun
Dim bval As Double
Dim aval As Double

Private Sub Calcmd_Click()
Dim varRes As Variant
aval = 1
bval = 2
TestFun .a = aval
TestFun.b = bval
Call TestFun.test(1, varRes)
txt.Text = Str(varRes)
End Sub

Private Sub Form_Load()

Set mydll = New TestDll.TestFun
End Sub

注:

可能我这边VC编译环境不对,虽可成功编译DLL,测试注册这个DLL文件出现错误:"找不到指定模块"
从而DLL在VB中引用也出错
在Set mydll = New TestDll.TestFun这句:"自动化错误"
期待高手!
要不你编译一个DLL试试!
加我QQ吧!

12 楼

非常感谢!!!!

13 楼

DLL也可在MATLAB中测试:
>>  h=actxserver('TestDll.TestFun')  %失败的DLL
??? Error using ==> actxserver
Server Creation Failed: 找不到指定的模块。
.

>> h=actxserver('Math.Fraction')   %成功的DLL
 
h =
 
    COM.math.fraction

我来回复

您尚未登录,请登录后再回复。点此登录或注册