找回密码
 注册
Simdroid-非首页
楼主: SCIE

【原创】MATLAB与VC界面混合编程尝试

[复制链接]
philisjoy 该用户已被删除
发表于 2004-8-12 15:13:13 | 显示全部楼层 来自 黑龙江哈尔滨
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2004-8-12 15:15:41 | 显示全部楼层 来自 天津

回复: 【原创】MATLAB与VC界面混合编程尝试

Simdroid开发平台
哪里产生的图形不重要,其实图形的嵌入只是一个窗口操作而已。
philisjoy 该用户已被删除
发表于 2004-8-12 16:06:12 | 显示全部楼层 来自 黑龙江哈尔滨
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2004-8-13 08:01:15 | 显示全部楼层 来自 福建泉州

回复: 【原创】MATLAB与VC界面混合编程尝试

好主意,要是能再支持:缩放等功能就更好了。
发表于 2004-8-23 16:18:16 | 显示全部楼层 来自 安徽安庆

回复: 【原创】MATLAB与VC界面混合编程尝试

想问scie兄:
如何将m文件编译为dll,同时在VC界面中可以加载Figure的toolbar吗(否则不就是一张静态图片的样子了吗?用户不可以旋转\放大等?!?)?
  
另,不知能否把simulink嵌入?
 楼主| 发表于 2004-8-23 18:03:07 | 显示全部楼层 来自 天津

回复: 【原创】MATLAB与VC界面混合编程尝试

本帖最后由 messenger 于 2009-7-17 11:36 编辑

1.可以将m文件编译为dll,在matlab6.5及以下版本中可以编译为两种dll
(1) mex DLL,该中dll是在matlab中直接使用的,编译为该dll的目的是为了程序在matlab中的执行速度,用mcc -x -h file.m实现
(2) 标准的DLL,编译为该类型的DLL是为了在其它程序中使用的,编译命令为:mcc -t -W libhg:<Library Name> -T link:lib -h libmmfile.mlib <m file name> ,其中 <Library Name>不能与<m file name>相同
在matlab7.0中,由于编译后的代码执行速度同编译之前没有区别,所以取消了把m文件编译为mex DLL的方式,只有编译为标准DLL的方式,编译命令为:
mcc -l file.m
  
2.可以加载Figure的toolbar,不过我觉得那些东西加上去影响整体效果。
怎么会是跟图片一个样子呢?你的Figure窗口上如果有鼠标或键盘的回掉函数,这个窗口仍然可以响应的。
 楼主| 发表于 2004-8-24 10:22:19 | 显示全部楼层 来自 天津

回复: 【原创】MATLAB与VC界面混合编程尝试

附件是可以下载的,采用zip格式压缩,请使用winzip或者winrar进行解压。解压后为vc的相关文件,请安装vc后打开扩展名为dsw的文件。我给你发一份的话跟网站上的也是完全一样的。
westwolfdog 该用户已被删除
发表于 2004-9-1 18:13:11 | 显示全部楼层 来自 辽宁大连
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2004-9-1 19:31:36 | 显示全部楼层 来自 天津

回复: 【原创】MATLAB与VC界面混合编程尝试

关于java相关的东西我基本上不了解,但matlab有java相关的接口,请参照matlab帮助里的 External Interfaces/API - Calling java from matlab部分,或者参照相关的接口方面的书。
westnorthern 该用户已被删除
发表于 2004-9-2 18:08:35 | 显示全部楼层 来自 北京西城
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2004-9-2 19:13:49 | 显示全部楼层 来自 天津

回复: 回复: 【原创】MATLAB与VC界面混合编程尝试

westnorthern wrote:
请教:我安装的Matlab 7.0中没有Libmatlb.lib、libmmfile.lib等库,如何才能得到!!!  

  
MATLAB7.0的编译器做了重大调整,本帖所述的所有内容都是针MATLAB6.5的,不能应用于MATLAB7.0。
ArenAK 该用户已被删除
发表于 2004-9-5 19:31:58 | 显示全部楼层 来自 北京
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2004-9-5 21:09:04 | 显示全部楼层 来自 天津

回复: 【原创】MATLAB与VC界面混合编程尝试

建议你看一下MATLAB的数学函数库的帮助
http://www.simwe.com/cgi-bin/ut/threaded_show.cgi?tid=56229&pid=292001
dafan 该用户已被删除
发表于 2004-9-6 10:23:03 | 显示全部楼层 来自 北方工业大学
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2004-9-6 15:01:22 | 显示全部楼层 来自 天津

回复: 【原创】MATLAB与VC界面混合编程尝试

1.在同一个figure窗口上做两个或两个以上的图形需要建立多个坐标系,可以用axes定制或者用subplot来自动生成。
2.MATLAB图形函数库的手册好像MathWorks没有公布。如果想要看一个图形函数的帮助,我的办法是写一个调用该函数的m文件,然后把它编译出来,就有了一个调用该函数的例子了。
3.建议不要采用在VC中直接调用图形函数库的程序,一般采取把某个功能模块用matlab写好,编译后再集成到VC中。
4.要做好VC与MATLAB的混编,首先需要对MATLAB和VC要有一定的了解,这两方面积累的越多,做起来也就越容易。说起经验,也没有太多可谈。两方面吧,一是从网上或者相关书籍(关于MATLAB编程接口的书好像也有好多本了)上多获取一些信息多多实践(我做混编是从cwit兄转贴的一篇帖子开始的),二是对于这些东西自己要多钻研一下。
发表于 2004-9-7 07:28:36 | 显示全部楼层 来自 哈尔滨工程大学

回复: 【原创】MATLAB与VC界面混合编程尝试

大家好!我刚刚来到这个论坛,有几个问题想请教一下
1。我是在vc6.0和matcom4.5混合编程,但是将m文件加入到vc文件中后,.exe文件一直在进程中存在,但是我已经用exitM()函数把matcom关了因此现在我每次编译一次程序之前都要在任务管理器中把.exe进程删除,然后才可以正常编译
2。我要用5兆个数据点作滤波卷积,具体函数如下:
b=fir1(1000,[f1*2/fs f2*2/fs];
y=conv(x,b);
m文件中加上滤波函数就会出现一个提示框,只写着warning ,具体内容没有,然后加上卷积函数,程序就像死机一样,点击一下就没有响应了
我的m文件在matlab中运行是好的,请各位帮帮忙
 楼主| 发表于 2004-9-7 13:39:17 | 显示全部楼层 来自 天津

回复: 【原创】MATLAB与VC界面混合编程尝试

大海龟:你好!我已经好长时间没有用过matcom了,再者接触的时间也不多。所以你的问题我无能为力。至于matcom与VC混编后的程序滞留内存不退出的问题我也遇到过,一直没有解决。建议使用VC与MATLAB的混编,虽然附带的DLL文件多了些,但是功能还是不错的。
ArenAK 该用户已被删除
发表于 2004-9-8 11:29:42 | 显示全部楼层 来自 北京
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2004-9-8 13:51:12 | 显示全部楼层 来自 天津

回复: 【原创】MATLAB与VC界面混合编程尝试

第一个问题,请告诉我的VC程序是什么类型的,是console的,Dialog based,还是Single Or Multiple Document的,还是DLL的。
第二个问题,假如root函数返回的mwArray类型的变量为mwRoot,可以用
double *pr = mxGetPr(mwRoot.GetData());
double *pi = mxGetPi(mwRoot.GetData());
获取指向实部和虚部的double类型的指针。
ArenAK 该用户已被删除
发表于 2004-9-8 14:40:28 | 显示全部楼层 来自 北京
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-20 02:50 , Processed in 0.045291 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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