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

Q1:向matlab库中传参,参数的类型问题


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

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


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


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

  1. 定义的mwArray 变量是否得到了正确的赋值;
  2. 向封装好的matlab库函数中传参的时候,是否遵循(参数个数,输出参数1,输出参数2,输入参数1,输入参数2)的形式;
  3. 封装时是否有用到的函数没有封装在内;
  4. matlab库函数中用到的相关mat文件以及TXT、SVM.mexw32等类似的文件是否将其封装(此类文件封装在Shared Resource里面);
  5. 如果以上都没问题,可以在matlab中选择性的进行注释,将不确定或者可能出错的注释掉,然后封装,在VS中再次进行调用,反复进行调试;
  6. 还有一种错误是: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即可;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值