VB与MATLAB混合编程探讨
[09-12 17:52:18] 来源:http://www.88dzw.com 单片机学习 阅读:8781次
文章摘要:·在VC++中选择“工具tools->定制(customize)->附加项和宏文件Add-ins and Macro Files页”,选中“MATLAB Add-in”。这样,在VC++工具栏出现MATLAB Add-in图标,在VC++新建工程对话框中会出现“MATLAB Project Wizard”。至此连接工作完成。·打开VC++,在新建工程中选择“MATLAB Project Wizard”,按照提示,选择“Shalled M-dll”,输入M文件位置,VC++开始转换。如果M文件没有错误,在工程文件夹中会生成一系列.C文件。其中与M文件同名的.C文件即为
VB与MATLAB混合编程探讨,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com·在VC++中选择“工具tools->定制(customize)->附加项和宏文件Add-ins and Macro Files页”,选中“MATLAB Add-in”。这样,在VC++工具栏出现MATLAB Add-in图标,在VC++新建工程对话框中会出现“MATLAB Project Wizard”。至此连接工作完成。
·打开VC++,在新建工程中选择“MATLAB Project Wizard”,按照提示,选择“Shalled M-dll”,输入M文件位置,VC++开始转换。如果M文件没有错误,在工程文件夹中会生成一系列.C文件。其中与M文件同名的.C文件即为转换的C代码。
第三步,编译DLL文件(强烈建议不要对刚刚生成的C代码作任何修改)。选择“编译”菜单,构建.DLL文件,在文件夹中会生成与工程名相同的DLL文件。
第四步,在VB中调用DLL文件。在第二步生成的C代码中找到所要的接口函数,注意大小写,记下函数名。在VB中使用Declare语句声明这个函数。在窗体的“通用-声明”输入如下语法:
Declare Function /Sub <函数名> Lib “<dll文件名>”Alias “<函数名>” <参数表> as <type>(具体语法可参看VB使用手册)。
在程序代码中直接调用声明的函数即可。需要注意的是函数调用过程中的参数传递问题。由于VB和C的数据类型以及参数传递形式不太一样,传递不当,可能会造成调试困难。特别是MATLAB中用到的大量矩阵(数组)参数,调用需十分当心。本文在下面例子中采用文件方式传递参数,利用VB和MATLAB的文件读写功能传递数组参数,对于实时性要求不高的应用,可以方便稳妥地实现数据传递。
2 应用举例
在VB中利用随机数生成16个10以内的整数,作为一个信号序列,利用MATLAB的快速傅立叶变换函数(FFT())对序列进行变换,再将变换结果传递回VB,并显示在窗体上。
在MATLAB中编辑好M文件(test.m),实现读取序列文件及FFT并写回序列文件,调试成功。代码如下:
function t
fid=fopen't.txt''rt+' %以读写文本方式打开
文件
acount=fscanffid'%d' %文件以整数格式读入
矩阵a
m=fftacount %FFT运算
frewindfid %文件指针指向文件头
fprintffid'%f\n'm %向文件写入矩阵m
fclosefid
按照前述步骤在VC++中转换为test.c文件,找到接口函数,本例为mlfTest()。
void mlfTest(void){
mlfEnterNewContext(0,0);
Mtest();
mlfRestorePreviousContext(0,0);
}
编译生成test.dll文件。
在VB中生成随机序列并写入文件:
Private Sub Command1_Click()
Randomize
《VB与MATLAB混合编程探讨》相关文章
- › VB与MATLAB混合编程探讨
- 在百度中搜索相关文章:VB与MATLAB混合编程探讨
- 在谷歌中搜索相关文章:VB与MATLAB混合编程探讨
- 在soso中搜索相关文章:VB与MATLAB混合编程探讨
- 在搜狗中搜索相关文章:VB与MATLAB混合编程探讨