博文
VB与MATLAB通信实现方案三:MatrixVB(2007-07-22 22:12:00)
摘要:
VB与MATLAB通信实现方案三
前言:MATLAB与VB接口,有使用DLL, DDE ,OLE ,ActiveX ,COM 组件等多种方法.
本文介绍的方法:
通过使用嵌入VB的矩阵函数库MatrixVB的方法。MatrixVB是由原MathTools公司开发的第三方插件,利用与Matlab相似的函数、语法嵌入到VB中,可以象使用VB的函数、命令一样使用Matlab函数。这种方法语法和函数使用比较简单,编程效率很高,几乎完全融入VB语言,特别对图形的处理非常方便,弥补了其他方法在图形处理上的弱点。安装后,只需在打开的工程中添加MatrixVB库即可(在工程->引用对话框中选中MMatrix)。但由于其仍然采用解释执行,执行效率较低,实时运算难以实现。
Matrix VB 下载地址:(MatrixVB 4.5注册码:
Name: Demian/TNT!
&nbs......
VB与MATLAB通信实现方案二:COM 组件(2007-07-20 22:53:00)
摘要:
VB与MATLAB通信实现方案二
前言:MATLAB与VB接口,有使用DLL, DDE ,OLE ,ActiveX ,COM 组件等多种方法.
本文介绍的方法:
使用MATLAB中的COM生成器(comtool),将M文件生成DLL,于VB中引用.从MATLAB6.5开始,MATLAB提供了COM生成器,使用该生成器,可以将MATLAB函数和自定义的函数打包成组件,然后集成到支持该技术的应用程序中去.使用该技术,可以很大程度上脱离MATLAB环境.
做个简单的例子吧!
1.建立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
2.使用Matlab 之comtool将其编译为testdll.dll包含类名为 testdll
>>comtool
MATLAB COM Builder-->File-->New...
注意写类名:class name
添加要编译的M文件: 点击Add File
编译DLL:点击Build
Matlab 中测试DLL:
>> h=actxserver('testdll.testdll')
3.建立VB工程,工程-->引用--......
VB与MATLAB通信实现方案一:OLE(2007-07-19 18:38:00)
摘要:
VB与MATLAB通信实现方案一
前言:MATLAB与VB接口,有使用DLL, DDE ,OLE ,ActiveX ,COM 组件等多种方法.
本文介绍的方法:
在VB中通过调用MATLAB的引擎(Engine)接口,使用Windows的OLE或ActiveX通道与MATLAB通信。通过Object.ExecuteMATLAB语句在程序中直接使用MATLAB提供的函数库和图形库。这种方法可以较快地编写出程序;但在调用引擎时,会在后台启动一个MATLAB进程,影响程序运行速度,占用内存。
例子: VB调用MATLAB进行多项式拟合
MATLAB中进行多项式拟合的库函数:
polyfit(x,y,n) 其中x,y为拟合数据,n为拟合多项式的阶数。
例:用最小二乘法拟合数据
x: 0.50 1.00 1.50 2.00 2.50 3.00
y: 1.75 2.45 3.81 4.80 8.00 8.60
x=[0.5,1,1.5,2,2.5,3] y=[1.75,2.45,3.81,4.80,8.00,8.60]
a=polyfit(x,y,2) %用2次多项式拟合上组数据,a为拟合多项式的系数向量
x1=0.5:0.05:3
y1=a(1)*x1.^2+a(2)*x1+a(3)
plot(x1,y1) %画出拟合曲线的图形
hold on %保留上面的图形和坐标,可在该坐标系中继续作图
pl......