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

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

[复制链接]
 楼主| 发表于 2004-9-8 17:02:15 | 显示全部楼层 来自 天津

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

关于fprintf的问题我的没有,在你调用fprintf函数的地方仔细检查一下有没有写错。
ArenAK 该用户已被删除
发表于 2004-9-8 22:07:10 | 显示全部楼层 来自 北京
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2004-9-9 08:00:40 | 显示全部楼层 来自 天津

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

ArenAK wrote:
真心的谢谢SCIE,我最近在帮别人做一个VC软件,但有个环节这几天几翻周折还是没搞成,我想请你帮帮忙,万分感激.
问题是这样的,现有一个VC的double数组A,存放着方程的系数,想利用matlab的函数求出此方程的根,并将根的实部存于名为re的VC数组中,将虚部存于名为im的VC数组中,怎么实现这个环节,谢谢!!!!

  
存放系数的数组为A
double A[] = {1,2,3,4};
mwArray mwA(1,4,A);   // 定义1行4列,实部为A的mwArray类型变量
mwArray mwRoots = roots(mwA);  // 求根
  
mxArray *mxRoots = mwRoots.GetData();
// 获取根的个数
int N = mxGetNumberOfElements(mxRoots);
double *re = mxGetPr(mxRoots);
double *im = NULL;
// 判断有没有复根
if(mxIsComplex(mxRoots))
   im = mxGetPi(mxRoots);
lwc801123 该用户已被删除
发表于 2004-9-9 11:37:30 | 显示全部楼层 来自 广东汕头
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2004-9-9 14:05:32 | 显示全部楼层 来自 天津

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

曾在一本书上看到用VC编写mex DLL时要选择静态链接MFC库,据说是MATLAB使用了特殊版本的mfc42.dll,与VC的不一样。也许是上述原因导致了这个问题,也许是其它原因,但我曾来没有遇到过,所以也就没法尝试去解决这个问题。
lwc801123 该用户已被删除
发表于 2004-9-9 14:23:11 | 显示全部楼层 来自 广东汕头
提示: 作者被禁止或删除 内容自动屏蔽
ArenAK 该用户已被删除
发表于 2004-9-9 14:26:56 | 显示全部楼层 来自 北京
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2004-9-9 16:00:18 | 显示全部楼层 来自 天津

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

如果没有复根的话,指向虚部的指针是NULL,这一点你要注意。
请贴些完整点的代码来,我看不明白具体的过程。
ArenAK 该用户已被删除
发表于 2004-9-9 22:31:22 | 显示全部楼层 来自 北京
提示: 作者被禁止或删除 内容自动屏蔽
lyfqhx 该用户已被删除
发表于 2004-9-10 09:17:25 | 显示全部楼层 来自 山西晋城
提示: 作者被禁止或删除 内容自动屏蔽
ronior 该用户已被删除
发表于 2004-9-10 09:52:23 | 显示全部楼层 来自 LAN
提示: 作者被禁止或删除 内容自动屏蔽
jiaoli 该用户已被删除
发表于 2004-9-10 13:58:05 | 显示全部楼层 来自 辽宁沈阳
提示: 作者被禁止或删除 内容自动屏蔽
hohooyang 该用户已被删除
发表于 2004-9-10 15:26:38 | 显示全部楼层 来自 河南洛阳
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2004-9-13 22:37:52 | 显示全部楼层 来自 陕西西安

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

程序里的Vplot(t, y, mwArray("Parent"), h_a);
Vset(h_f,"Visible",strVisible)
figure("DoubleBuffer","NumberTitle","Off","Name",strFigName,"Menubar","None","Color",BKColor,"Visible",strVisible);
axes("Parent",h_f,"Box","On")等等
哪定义的?
 楼主| 发表于 2004-9-18 08:21:47 | 显示全部楼层 来自 天津

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

stone_3rd wrote:
程序里的Vplot(t, y, mwArray("Parent"), h_a);
Vset(h_f,"Visible",strVisible)
figure("DoubleBuffer","NumberTitle","Off","Name",strFigName,"Menubar","None","Color",BKColor,"Visible",strVisible);
axes("Parent",h_f,"Box","On")等等
哪定义的?

  
这些函数是在matlab的各种扩展名为hpp的头文件中定义的。
发表于 2004-9-19 16:08:01 | 显示全部楼层 来自 湖南长沙

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

请问:像VPlot这样的绘图函数是在什么地方找到的?我怎么找遍了都没有看见?找绘图需要的这种C对应函数有没有什么诀窍?谢谢
 楼主| 发表于 2004-9-19 19:44:22 | 显示全部楼层 来自 天津

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

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

  
建议你在发问之前把本帖的帖子都看一下,其实有些问题我已经回答过了,没有再重复的必要。
发表于 2004-9-21 16:50:51 | 显示全部楼层 来自 LAN

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

SCIE 师兄:我按照你的办法1)写了一个m文件sinee.m,如下:
function sinee()
w=1;a=1;t=0:0.05:2;
y=a * sin (2*w*t*pi);
plot(t,y);
title('正弦图');
2)用mcc -p -W mainhg libmwsglm.mlib sinee.m命令将其编译成c++文件,生成的文件有sinee.cpp sinee.hpp title.cpp title.hpp sinee.exe 和bin文件夹
3)sinee.cpp中调用了title.cpp中的Ntitle函数,所以我准备用这个函数指定图的标题,我在vc的工程中包含了title.hpp和title.cpp可是在编译title.cpp时出现了下面的错误fatal error C1010: unexpected end of file while looking for precompiled header directive,请问怎么解决,如果这样不行,还有什么办法?
 楼主| 发表于 2004-9-21 16:57:33 | 显示全部楼层 来自 天津

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

http://www.simwe.com/cgi-bin/ut/threaded_show.cgi?tid=30318&pid=159614
  
请检查是否已经按照上帖要求进行设置,尤其注意检查第3步的要求。
发表于 2004-9-22 19:56:58 | 显示全部楼层 来自 陕西西安

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

SCIE兄,我GUI函数编译过去的在VC的响应函数里怎么样调用 啊?
直接写函数名好像不行的啊,输入参数不知道该输什么
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-25 17:40 , Processed in 0.047185 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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