C++调用MATLAB引擎的问题

C++调用MATLAB引擎的问题

ID:40531844

大小:83.00 KB

页数:5页

时间:2019-08-04

C++调用MATLAB引擎的问题_第1页
C++调用MATLAB引擎的问题_第2页
C++调用MATLAB引擎的问题_第3页
C++调用MATLAB引擎的问题_第4页
C++调用MATLAB引擎的问题_第5页
资源描述:

《C++调用MATLAB引擎的问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VC++调用MATLAB引擎的问题,怎样把编辑框中的数据传输到MATLAB中并计算?2010-9-1009:38提问者:kxn0831

2、浏览次数:922次比如说做个简单的加法,三个编辑框,编辑框变量分别为:m_m1,m_m2,m_result,请问加什么语句可以实现以上的功能?有个小程序是错的希望指正,可能错的都离谱了,见笑。voidCMATLABEngineDlg::OnMATLABEngine(){Engine*ep;MessageBox("单击确定按钮,Windows正在准备启动Matlab引擎!","Matlab引擎",MB_OK

3、MB_ICONINFORMATION);if(!

4、(ep=engOpen("")))//打开Matlab引擎{fprintf(stderr,"Matlab引擎启动失败!");MessageBox("Matlab引擎启动失败!","Matlab引擎",MB_OK

5、MB_ICONERROR);exit(-1);}UpdateData(true);//将矩阵变量写入Matlab引擎的工作区engPutVariable(ep,"m_m1",m_m1);//通过Matlab引擎执行Matlab命令engEvalString(ep,"m_result=m_m1+m_m2");UpdateData(false);MessageBox("关

6、闭Matlab引擎,系统将退出Matlab应用程序!","Matlab引擎",MB_OK

7、MB_ICONINFORMATION);engClose(ep);//TODO:Addyourcontrolnotificationhandlercodehere}这个错误显示是:D:ProgramFilesMicrosoftVisualStudioMyProjectsMATLABEngineMATLABEngineDlg.cpp(198):errorC2664:'engPutVariable':cannotconvertparameter3from'double'to'conststru

8、ctmxArray_tag*'Thereisnocontextinwhichthisconversionispossible执行cl.exe时出错.十分感谢,您的帮助!问题补充:谢谢一楼的回答,我的基础比较差,我用了你提供的方法,还是无法得到满意的结果,请看:mxArray*T=NULL,*P=NULL,*Q=NULL;doublescore;//formmatrixT=mxCreateDoubleMatrix(1,1,mxREAL);memcpy((void*)mxGetPr(T),(void*)score,sizeof(score));P=mxCreateDoubleMatrix(1

9、,1,mxREAL);memcpy((void*)mxGetPr(P),(void*)score,sizeof(score));Q=mxCreateDoubleMatrix(1,1,mxREAL);memcpy((void*)mxGetPr(Q),(void*)score,sizeof(score));//WriteintoMATLABEngineWorkarea*T=&m_m1;*P=&m_m2;*Q=&m_result;engPutVariable(ep,"T",T);engPutVariable(ep,"P",P);engPutVariable(ep,"Q",Q);UpdateDa

10、ta(true);//将矩阵变量写入Matlab引擎的工作区engEvalString(ep,"Q=P+T");//释放矩阵变量T占用的内存空间UpdateData(false);mxDestroyArray(T);mxDestroyArray(P);mxDestroyArray(Q);您看还需要添加些什么呢?现在提示的错误是:errorC2440:'typecast':cannotconvertfrom'double'to'void*'errorC2582:'mxArray_tag':'operator='functionisunavailable我来帮他解答输入内容已经达到长度限制还

11、能输入 9999 字插入图片删除图片插入地图删除地图插入视频视频地图参考资料:匿名回答提交回答取消2010-9-1616:49满意回答我几年以前做过这样的混合编程,下面是运行正确的代码片段,供你参考:单个变量也要定义成1X1的矩阵形式,如doublesample[1]={0};sizeof括号里面应该是变量的数据类型,如double时间长了,我都有点忘了,希望给你提供帮助。voidCBsplineDlg::OnButtonStart

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。