一、引入MatrixVB
MatrixVB 是 MathWorks 针对 Visual Basic 提供的一个 MATLAB 库,它提供了 600 多个函数,包括:
-
基本的数学运算
-
功能强大的信号处理
-
线性代数
-
串运算
-
图形图像处理功能
主要优势
-
为 VB 提供了强大的功能扩展
-
可避免重复性劳动
-
减少开发人员实现算法和界面设计的困难
使用方法
-
获取:MatrixVB 是一个独立产品(可从 www.mathworks.com 获取)
-
安装:完成安装后
-
引用:在 VB 工程中引用 Mmatrix 即可
二、通过M文件
Matlab 产生的 M 文件不能直接在 VB 中调用,需利用 mcc 将 M 文件编译成 .EXE 文件。
实现步骤
-
使用 mcc 生成独立的外部应用程序
-
在 VB 中声明三个 API 函数
-
使用 Shell 命令 实现 VB 与 MATLAB 的无缝集成
mcc 编译命令
| 命令 | 说明 |
|---|---|
mcc -p file.m |
生成独立应用程序 |
mcc -m file.m |
生成独立应用程序 |
三、借助 ActiveX 部件
ActiveX 技术背景
Microsoft 把所有以 COM 为基础的技术统称为 ActiveX 技术。自动化 是大多数 ActiveX 技术的基础,它可使解释性的宏语言(如 VB)能够在不了解应用程序实现细节的情况下控制自动化对象。
MATLAB 的 ActiveX 支持
MATLAB 实现了 ActiveX 自动化服务支持。在 VB 下,通过 ActiveX 自动化接口,可将 MATLAB 作为 Visual Basic 语言的一个 ActiveX 部件 调用。
三种方法对比
| 方法 | 特点 | 适用场景 |
|---|---|---|
| MatrixVB | 提供600+函数,直接引用即可 | 需要大量数学/信号处理功能 |
| M文件编译 | 将M文件编译为EXE,通过Shell调用 | 已有成熟M文件,需独立运行 |
| ActiveX部件 | 将MATLAB作为自动化对象调用 | 需要深度集成和交互控制 |