Matlab 版 (精华区)
发信人: zjliu (fly), 信区: Matlab
标 题: 有关matlab与vc混合编程
发信站: 哈工大紫丁香 (Mon Jul 8 19:04:27 2002) , 转信
发信人: hahama (hahama), 信区: Matlab
标 题: 有关matlab与vc混合编程
发信站: 风铃屋 (2002年03月30日01:45:56 星期六), 站内信件
作者 chang (双子星~山顶洞三号)
看板 Matlab
标题 matlab&vc(1)
时间 【真情流露】Fri Jan 11 15:34:00 2002
————————————————————————
———————————————
对于转换.m文件到c或cpp,现在我所知有两种常用方法
一是通过matlab自代的编译器mcc(5.1就有的),另一个是通过matcom
(MIDEVA),而我
常用的为后者。两者比较各有优势,对于后者来说,
我有以下几点体会:
标 题: 有关matlab与vc混合编程
发信站: 风铃屋 (2002年03月30日01:45:56 星期六), 站内信件
作者 chang (双子星~山顶洞三号)
看板 Matlab
标题 matlab&vc(1)
时间 【真情流露】Fri Jan 11 15:34:00 2002
————————————————————————
———————————————
对于转换.m文件到c或cpp,现在我所知有两种常用方法
一是通过matlab自代的编译器mcc(5.1就有的),另一个是通过matcom
(MIDEVA),而我
常用的为后者。两者比较各有优势,对于后者来说,
我有以下几点体会:
1.使用方便,在matcom集成环境中可以进行转换、
编译、调适、执行等
2.运行速度比用mcc转换的略快,2-10倍不等,
可以生成独立执行的exe,dll并且生成
对应的cpp文件
3.我最喜欢的
做法是在C编译器中直接用MIDEVA的语法调用matlab函数,与C混编
因为MIDEVA的语句形式基本与matlab上的写法一样,所以就和直接在
matlab上
写差不多,然后用C编译器编译就行了,
(如在VC,C++Builder,BC等)这就省去了
转换这个环节。
4.当然这种方法也有不足,绘图没有mex的精致,matlab的一些功能
尚未完全实现,
另外对于工具箱的支持也有限,因为我没有试过,
所以具体还需应用后才能下结论
可以用VC生成dll的方法将m文件转为
可被vc调用dll;
1.使用方便,在matcom集成环境中可以进行转换、
编译、调适、执行等
2.运行速度比用mcc转换的略快,2-10倍不等,
可以生成独立执行的exe,dll并且生成
对应的cpp文件
3.我最喜欢的
做法是在C编译器中直接用MIDEVA的语法调用matlab函数,与C混编
因为MIDEVA的语句形式基本与matlab上的写法一样,所以就和直接在
matlab上
写差不多,然后用C编译器编译就行了,
(如在VC,C++Builder,BC等)这就省去了
转换这个环节。
4.当然这种方法也有不足,绘图没有mex的精致,matlab的一些功能
尚未完全实现,
另外对于工具箱的支持也有限,因为我没有试过,
所以具体还需应用后才能下结论
可以用VC生成dll的方法将m文件转为
可被vc调用dll;
1)用app wizzard生成一个VC dll工程;
2)利用VISIUAL MATCOM将m文件加入工程。
3)函数导入应写为extern "C++" _declspec(dllexport) .....
4)编译生成dll与lib。
5)在调用dll的VC工程中导入
extern "C++" _declspec(dllimport)并调用dll.
在以上过程中,应在需要用到Mm类的地方加入语句:
#include "matlib.h",同时应把v4
501v.dll加入工程。
1〉用matcom转换m文件成为c文件
[优点]:
1.可以脱离matlab环境,只需要加入1兆多的dll在程序里
1)用app wizzard生成一个VC dll工程;
2)利用VISIUAL MATCOM将m文件加入工程。
3)函数导入应写为extern "C++" _declspec(dllexport) .....
4)编译生成dll与lib。
5)在调用dll的VC工程中导入
extern "C++" _declspec(dllimport)并调用dll.
在以上过程中,应在需要用到Mm类的地方加入语句:
#include "matlib.h",同时应把v4
501v.dll加入工程。
1〉用matcom转换m文件成为c文件
[优点]:
1.可以脱离matlab环境,只需要加入1兆多的dll在程序里
2.可以把曲线图放入vc的picture控件里面(这一点让程序看起来
完全是我自己的产品)
[缺点]:
1.出品该软件的公司已经被matlab的收买,以后用它没有前途
2.不支持matlab的某些功能,且某些方面功能不足
2〉用matlab转换m文件为c文件
[我可以做到]
1.用matlab进行数值计算,vc调用计算结果,可以脱离matlab环境
2.用matlab进行画图,但是只能在console 应用程序里面,可以脱离
matlab
环境
3.调用engine.h进行画图,发觉不能脱离matlab环境,
而且matlab主窗口也
2.可以把曲线图放入vc的picture控件里面(这一点让程序看起来
完全是我自己的产品)
[缺点]:
1.出品该软件的公司已经被matlab的收买,以后用它没有前途
2.不支持matlab的某些功能,且某些方面功能不足
2〉用matlab转换m文件为c文件
[我可以做到]
1.用matlab进行数值计算,vc调用计算结果,可以脱离matlab环境
2.用matlab进行画图,但是只能在console 应用程序里面,可以脱离
matlab
环境
3.调用engine.h进行画图,发觉不能脱离matlab环境,
而且matlab主窗口也
会打开
[我不能做到的,也是我最想能做到的]
把matlab函数画的曲线图能够放入picture控件里面
这样可以让我的程序看起来和matlab无关!
如何将Matlab集成入VC
1.安装matlab 6,VC6
2.在Matlab下运行mex -setup,按提示做
3.在matlab下运行mbuild -setup,按提示做
4.打开vc,new一个project,可以发现出现一种新的project类型:
matlab
project,选它
5.Matlab project wizard提示你需要一个m文件以生成project
会打开
[我不能做到的,也是我最想能做到的]
把matlab函数画的曲线图能够放入picture控件里面
这样可以让我的程序看起来和matlab无关!
如何将Matlab集成入VC
1.安装matlab 6,VC6
2.在Matlab下运行mex -setup,按提示做
3.在matlab下运行mbuild -setup,按提示做
4.打开vc,new一个project,可以发现出现一种新的project类型:
matlab
project,选它
5.Matlab project wizard提示你需要一个m文件以生成project
,选择你要
编译的m文件,就OK了
6.Matlab project wizard将会把你的程序调用的所有Matlab
自带m文件一并
加入project。
7.为了编译通过,还需在VC的
Tools->options->Directories->include
files中加入
C:\MATLABR12\EXTERN\INCLUDE
以及Libary files中加入
C:\MATLABR12\EXTERN\LIB\WIN32\MICROSOFT\MSVC60
C:\MATLABR12\EXTERN\LIB\WIN32
同时在Project->setting->Link->Object/libary modules中加入
libmmfile.lib libmatlb.lib libmx.lib libmat.lib sgl.lib
,选择你要
编译的m文件,就OK了
6.Matlab project wizard将会把你的程序调用的所有Matlab
自带m文件一并
加入project。
7.为了编译通过,还需在VC的
Tools->options->Directories->include
files中加入
C:\MATLABR12\EXTERN\INCLUDE
以及Libary files中加入
C:\MATLABR12\EXTERN\LIB\WIN32\MICROSOFT\MSVC60
C:\MATLABR12\EXTERN\LIB\WIN32
同时在Project->setting->Link->Object/libary modules中加入
libmmfile.lib libmatlb.lib libmx.lib libmat.lib sgl.lib
标 题: 不知MATLAB5.3与6.0有什么区别
发信站: 风铃屋 (Sat Mar 30 15:19:50 2002)
我买了6.0
学校机房装的是5.3
--
※ 来源:.风铃屋 http://bbs.ysu.edu.cn [FROM: 202.206.242.151]
--
※ 来源:.哈工大紫丁香 http://bbs.hit.edu.cn [FROM: 202.118.229.86]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.816毫秒