您的位置:首页 > 编程语言 > MATLAB

C++和matlab混合编程:问题记录

2018-01-12 11:36 513 查看
Q1:向matlab库中传参,参数的类型问题

Answer:如果要传的是矩阵,应该用mwArray函数定义变量mID,参数中设定矩阵大小以及元素类型,然后将该

mID传入封装好的库函数的主函数中;如果传字符串,不能用string类型定义,应该用CString,char* 都可以。

Q2:向matlab库中传参,一直显示失败

Answer:当程序运行到matlab库函数的时候总显示失败,那么主要检查以下几点

定义的mwArray 变量是否得到了正确的赋值;
向封装好的matlab库函数中传参的时候,是否遵循(参数个数,输出参数1,输出参数2,输入参数1,输入参数2)的形式;
封装时是否有用到的函数没有封装在内;
matlab库函数中用到的相关mat文件以及TXT、SVM.mexw32等类似的文件是否将其封装(此类文件封装在Shared Resource里面);
如果以上都没问题,可以在matlab中选择性的进行注释,将不确定或者可能出错的注释掉,然后封装,在VS中再次进行调用,反复进行调试;
还有一种错误是:matlab库函数基本确定没错误,但就是运行不成功,此时在VS中进行调试时,会出现Windows命令行,里面的错误是 
OMP: Error #15: Initializing libiomp5md.dll, but found libguide40.lib alread

后面会提示解决措施:将 KMP_DUPLICATE_LIB_OK 的 Windows 环境变量设为
TRUE。此时,在电脑的环境变量中将用户变量和系统变量中添加一个KMP_DUPLICATE_LIB_OK的变量,设置值为TRUE即可;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: