BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #98476同步于 2018/10/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

【问题】matlab mex cpp文件时出现错误,求助求助

aiziji123456
2018/10/29镜像同步1 回复
#ifdef MATLAB_MEX_FILE // Create [hxwxd] mxArray array, initialize to 0 if c=true mxArray* mxCreateMatrix3( int h, int w, int d, mxClassID id, bool c, void **I ){ const int dims[3]={h,w,d}, n=h*w*d; int b; mxArray* M; if( id==mxINT32_CLASS ) b=sizeof(int); else if( id==mxDOUBLE_CLASS ) b=sizeof(double); else if( id==mxSINGLE_CLASS ) b=sizeof(float); else mexErrMsgTxt("Unknown mxClassID."); *I = c ? mxCalloc(n,b) : mxMalloc(n*b); M = mxCreateNumericMatrix(0,0,id,mxREAL); mxSetData(M,*I); mxSetDimensions(M,dims,3); return M; } 最后一行mexSetDimensions报错,gradientMex.cpp(330): error C2664: “int mxSetDimensions_730(mxArray *,const size_t *,std::size_t)”: 无法将参数 2 从“const int [3]”转换为“const size_t *”。
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
aiziji123456机器人#1 · 2018/10/29
解决了,const int 改成const mwSize即可