当前位置:编程学习 > C#/ASP.NET >>

Matlab与VB.Net的问题

我现在想用Matlab7.5(Matlab2007b)与VB.Net(VS2003)进行混合编程,在VB中调用Matlab为.net生成的dll(文件名为BLS)时,我用了下面的方法: 
Dim S As MWNumericArray = New MWNumericArray(MWNumericType.Double, 100) 
Dim X As MWNumericArray = New MWNumericArray(MWNumericType.Double, 80) 
Dim r As MWNumericArray = New MWNumericArray(MWNumericType.Double, 0.05) 
Dim T As MWNumericArray = New MWNumericArray(MWNumericType.Double, 2) 
Dim sigma As MWNumericArray = New MWNumericArray(MWNumericType.Double, 0.3) 
Dim q As MWNumericArray = New MWNumericArray(MWNumericType.Double, 0.01) 

ret = bls.blsprice(2, S, X, r, T, sigma, q) 

其中bls是Matlab自带的一个给期权定价的函数,但是它老是报错,说“input must be real”. 这个是什么问题呢?在Matlab中输入同样的参数是可以的。 
还有我生成COM时再VB.net中添加引用时,死活引用不上,VS2003老是重启。 

请教各位大侠...感激不尽! --------------------编程问答-------------------- dll需要注册? --------------------编程问答-------------------- 问题已解决。
方法如下:在Matlab中以Com方式生成dll然后在VB.net(2003)中引用该COM。Vs2003报错重启,发现该dll目录下有生成两个dll为:Interop.MWComUtil.dll 和Interop.MyCom.dll (原dll为:MyCom_1_0.dll),这次引用新产生的dll,不引用原dll,结果不报错了。
然后在VB.NET中使用该方法bls.blsprice(2, S, X, r, T, sigma, q),结果正确。问题解决!

现在又有个问题就是:
到底哪些函数用Matlab的Matlab Builder for .NET 中的.NET Compenent,哪些用Generic COM Compenent来产生dll才能在.net中被正确引用呢?
是以什么来区分呢,有什么规律吗? 

请高手多多指教!
补充:.NET技术 ,  VB.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,