关于C++与Matlab混合编程错误??? Unexpected Standard exception from MEX file.



最近在用c++和matlab 混合编程是遇到了一些问题,如下:

??? Unexpected Standard exception from MEX file.
What() is:c:program


Error in ==> mscale at 32
   [rho,s] = matscale(abs(a),0.01);

Error in ==> utScaledExpm at 7
[s,junk,a] = mscale(a,'noperm','safebal');

Error in ==> ssdata.utDiscretizeZOH at 171
      s = utScaledExpm([[a b]*Ts; zeros(nu,nx+nu)]);

Error in ==> ssdata.trespSetUp at 104
            [D,XMap] = utDiscretizeZOH(D,dt,XMap);

Error in ==> ltidata.timeresp at 78
   [Dsim,dt,tf,SimInfo] =
   trespSetUp(D,RespType,dt,tf,x0);

Error in ==> lti.step at 67
      [y,t,focus] = timeresp(D,'step',t);

Error in ==> step at 125
   yout = step(sys,t);

关于异常,请参加:http://www.cplusplus.com/reference/exception/exception/


1. 直接在网上的程序或者直接用的别人的code,会由于配置以及环境问题导致问题,此处并不一定抛出异常,比较容易查找;
2. 程序当时的Matlab版本不同与自己目前的Matlab版本不同,有导致抛出异常的可能性,并且自己也有经历;

3.有时候,如果用C++的容器(list、vector等),如果size 或者迭代器使用不当也会导致越界访问异常,特别是对于容器的边界,尤其注意,本人曾在这里不止吃了一次苦头!
4. 因为内存分配与释放问题,在程序运行几次后,你的CPU占用率很高的话,就应该考虑此原因,是不是忘记release resource了!

查找错误的关键在于跟踪与定位,切记哦!










  • 35
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值