找回密码
 注册
Simdroid-非首页
查看: 2661|回复: 19

【原创】VC6.0调用Matlab6.5数学库函数和图形库函数编程实例

[复制链接]
发表于 2006-5-23 20:13:45 | 显示全部楼层 |阅读模式 来自 广东深圳
VC6.0调用Matlab6.5数学库函数和图形库函数编程实例

说明:
(1)  这个例子是VC调用Matlab6.5(不是6.1更不是7.x)数学库函数和图形库函数编程实例,没有采用m文件编译再嵌入方式(觉得没有必要),直接用数学库函数和图形库函数编写C++代码或改写m代码.

(2)  程序能在没有安装MATLAB的机器上运行,但需要附带MATLAB的函数库与图形库,MATLAB已经把这两个库的函数打包了,位于matlab安装目录中extern\lib\win32子目录中的mglarchive.exe。运行该程序即可自动把需要的库函数解压到当前目录中,把编译好的程序放到该目录中或在环境变量中加入此目录即可脱离matlab运行.

(3) 工程相关设置可以参见源代码,注意MFC是用的Static linked library.此外在VC6.0中需要如下设置:
选择菜单Tools-Options-在属性页中选择Directories-下拉框中选择
Include Files,在其最后加入
E:\MATLAB6P5\EXTERN\INCLUDE\CPP
E:\MATLAB6P5\EXTERN\INCLUDE
再选择Library Files,在最后加入
E:\MATLAB6P5\EXTERN\LIB\WIN32\MICROSOFT\MSVC60
E:\MATLAB6P5\EXTERN\LIB\WIN32
若使用图形库,在源代码中
初始化需调用如下函数:
libmmfileInitialize();
libmwsglmInitialize();
mlfHGInitialize(NULL,NULL);
在退出时调用如下函数:
mlfHGTerminate();
libmwsglmTerminate();
libmmfileTerminate();

(4) 软件的"表盘显示"属性页用到了matlab所带的Airs.ocx的ActiveX控件,其使用文档可在此控件相关网站(http://www.globalmajic.com/)查询.

(5) 软件运行需要航迹文件TRAJ.dat放于同一目录,具体格式参见操作说明.

参考文献 :[1]  SICE. MATLAB与VC界面混合编程尝试
                 [2] <<MATLAB扩展编程>>
                 [3]  <<MATLAB 外部程序接口(6.x)>>  

源代码如下

[ 本帖最后由 nostalgica 于 2006-5-23 20:55 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

 楼主| 发表于 2006-5-23 20:14:56 | 显示全部楼层 来自 广东深圳

运行效果1

Simdroid开发平台
运行效果1

[ 本帖最后由 nostalgica 于 2006-5-23 20:29 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2006-5-23 20:15:30 | 显示全部楼层 来自 广东深圳

运行效果2

运行效果2

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2006-5-23 20:15:55 | 显示全部楼层 来自 广东深圳

运行效果3

运行效果3

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2006-5-23 20:59:06 | 显示全部楼层 来自 新加坡
效果不错,支持并谢谢分享!
发表于 2006-5-24 12:32:55 | 显示全部楼层 来自 江苏无锡
nostalgica

做的很棒,我在simwe 的杂志上也看到你以前的作品。

是否可以整理一个索引的帖子在《航天航空版》发表?
 楼主| 发表于 2006-5-24 18:03:25 | 显示全部楼层 来自 广东深圳
原帖由 FreddyMusic 于 2006-5-24 12:32 发表
nostalgica

做的很棒,我在simwe 的杂志上也看到你以前的作品。

是否可以整理一个索引的帖子在《航天航空版》发表?


欢迎转贴!

Airs.ocx matlab本身就带了.

[ 本帖最后由 nostalgica 于 2006-5-24 18:04 编辑 ]
发表于 2006-5-25 02:06:17 | 显示全部楼层 来自 新疆乌鲁木齐
本帖最后由 bainhome 于 2009-6-5 22:58 编辑

NOSTALGICA又露头了!义不容辞过来支持一下,这个和你从前给我的那一套程序感觉基本在一个体系内。
非常漂亮,当然要鼓个掌!
发表于 2006-5-25 08:11:32 | 显示全部楼层 来自 湖北武汉
nostalgica
推测是毕业设计相关程序,比较系统。
发表于 2006-5-28 19:05:38 | 显示全部楼层 来自 山东青岛
不好意思,我想问一下,我在我的机子上编译时,怎么出现link error!不能找到libmatpm.lib这个文件!我的机子上安装了6.5,并且我按照上面的方法做了!不知道为什么会出现这样的错误,希望有人能给我解答一下!
xwfu 该用户已被删除
发表于 2006-6-5 23:41:43 | 显示全部楼层 来自 陕西西安
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2006-7-24 16:25:38 | 显示全部楼层 来自 大连理工大学
我装的是matlab7.0
在vc++6.0下编译不成功
c:\documents and settings\administrator\桌面\radio\radio\radio.h(24) : fatal error C1083: Cannot open include file: 'matlab.hpp': No such file or directory
Generating Code...
执行 cl.exe 时出错.
发表于 2008-10-29 21:21:48 | 显示全部楼层 来自 湖北武汉

求教

使用mwarray定义变量,在调试程序的时候,如何去查看比较方便?是不是为了查看它,就得另外编写一个语句,这也太费事了。有没有如同vc调试变量的watch功能那样简单的手段呢?

[ 本帖最后由 fighter-11 于 2008-10-29 21:26 编辑 ]
回复 不支持

使用道具 举报

发表于 2008-10-29 21:24:48 | 显示全部楼层 来自 湖北武汉
另,通过恒润的客服了解到,mathworks以后不再支持C++数学库了,我看了一下2007a的,相关目录的确少了很多头文件。
难道6.5将成绝响?
希望楼主这样经常在这一方面摸爬滚打的前辈能给一个明确的答复:'(

[ 本帖最后由 fighter-11 于 2008-11-2 19:10 编辑 ]
回复 不支持

使用道具 举报

发表于 2008-11-2 11:23:38 | 显示全部楼层 来自 江苏镇江

图形函数库的使用

nostalgica,您好!
    您编写的程序我正在仔细研读,里面还有很多内容没有弄懂,由于我现在要在VC实现三维图形操作,并且要把在matlab中定义好的类转移到vc中,程序要实现动画仿真,您的程序对于我真的很有意义,对您的工作深表感谢。
    我现在正拜读您view类里面的函数,了解了一些图像操作的命令(figure,view,rotate3d),对于其中坐标轴动态变化的实现方法不太明白,您是怎么实现的呢?

[ 本帖最后由 lyzero0 于 2008-11-24 22:01 编辑 ]
回复 不支持

使用道具 举报

发表于 2008-12-8 22:19:34 | 显示全部楼层 来自 黑龙江哈尔滨
为什么编译没错误,而运行exe文件的时候老是提示无法定位程序输入点 xx于动态链接库xx.dll上呢?请高手指点!
回复 不支持

使用道具 举报

发表于 2008-12-9 15:23:08 | 显示全部楼层 来自 湖北武汉
VC调用MATLAB com 的dll 能否得出这样的效果?
回复 不支持

使用道具 举报

发表于 2009-3-4 08:22:46 | 显示全部楼层 来自 四川成都
物品用的是matlab2008a,好像也是不能编译,难道只能用6.5版本?
回复 不支持

使用道具 举报

发表于 2009-6-5 22:37:39 | 显示全部楼层 来自 北京石景山
没有找到matlab.hpp
回复 不支持

使用道具 举报

发表于 2009-6-8 21:31:07 | 显示全部楼层 来自 北京石景山
装了个6.5,可以运行了,谢谢楼主分享!
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-24 10:21 , Processed in 0.062771 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表