VC与matlab溷编画图.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
我的.m文件是这样的:? ? function lizi()? ? x=importdata(D:\matlab\work\abc.txt)? ? y=importdata(D:\matlab\work\y.txt)? ? ar_fs = 256;? ? [psd_HRV,f_HRV] = pmcov(y,16,ar_fs,1);? ? lenpsd=length(psd_HRV);? ? f_hrv1=f_HRV(4:lenpsd)? ? psd_HRV1=psd_HRV(4:lenpsd)? ? plot(f_hrv1,psd_HRV1);? 就是打开两个数据文件,计算功率谱密度并显示图形。在matlab软件下编译成功。在comtool环境下建立工程并编译得到了com组件,。然后建了一个基于对话框的mfc程序sunsun,并建立一个按钮调用matlab程序并显示图形。通过VC 中Tools-〉OLE viewer 里的MATLAB COM Builder Conponents 保存得到了sunny_1_0.h, sunny_1_0.c(sunny为com组件工程名),并连同sunny_1_0.dll,mwcomutil.h复制到了mfc工程目录下。并将testcom_1_0.h, testcom_1_0.c,mwcomutil.h添加到程序中,并添加相应的import的include的头文件,在按钮的响应程序中我是这么写的:? CoInitialize(NULL); //初始化COM? Isunshijie *pIsunlijun;? HRESULT hr=CoCreateInstance(CLSID_sunshijie,NULL,CLSCTX_ALL,IID_Isunshijie,(void **)pIsunlijun);? if (FAILED(hr))//测试创建是否成功? { ? AfxMessageBox(create failed);? return;? }? hr=pIsunlijun-lizi();? 我点了按钮之后,程序一直在运行,最后也不报错,但是在编译框显示First-chance exception in sunsun.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.? 就是不调出图形,我是完全按照一个例子写的,而且用例子中提到的如下的.m文件:? ? function huatu();? ? x=-10:0.1:10;? ? y=sin(x);? ? plot(x,y);? 按照以上的步骤,建立.com组件并通过vc调用获得图形完全成功。? 搞了快一个星期了,google了也没找到原因,请教各位,我到底是哪里出了问题,还请大家多多指教,谢谢大家。? ? 我以后复杂的matlab程序是在数据库中保存数据文件,然后通过在vc中从数据库选择一个文件后对其进行信号处理。复杂程序中,肯定不会直接这样直接存贮数据文件的。我在这里写这样一个简单的程序,就是想先把简单程序混编并画图的流程搞清楚,然后在应用到复杂的程序中,因为我要脱离matlab环境,所以并没有采用matlab做界面,现在这个简单的程序混编都搞不出来,所以上网问问各位高手? 精通 VC 与 MATLAB 联合编程九——综合举例一 作者:邓科 工具:VC6.0 + MATLAB 6.5 实现功能:用户输入数据,完成数据的拟合 准备:在VC中设置库文件和头文件路径,参见联合编程 6 7 步骤: 1、建立一个名为ceshidll.m的M函数文件,该函数的功能是输入两组数完成两组数据的插值拟合,并将结果用图形表示: ceshidll.m文件内容如下: function ceshidll(x,y) a=min(x):0.1:max(x); b = interp1(x,y,a,spline);%一维插值函数 plot(x,y,*,a,b); 2、在MATLAB Command中用如下命令编译函数ceshidll.m: mcc -t -W libhg:dlltest -T link:lib -h libmmfile.mlib ceshidll.m 参数说明: -t 将m文件编译为C\C++代码 -W libhg:dlltest 生成使用C函数图形库的文件,生成的文件名为dlltest -T link:lib 生成库文件 -h 辅助选项,可以将任何被调用的辅助函数都包含到编译的文件中 libmmfile.mlib连接任何需要的共享函数库 ceshidll.m 被编译的文件名   编译完成后在MATLAB当前目录下会生成以下文件:

文档评论(0)

dashewan + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档