ivan@140: /************************************************************************** ivan@140: * ivan@140: * File name: mexutils.c ivan@140: * ivan@140: * Ron Rubinstein ivan@140: * Computer Science Department ivan@140: * Technion, Haifa 32000 Israel ivan@140: * ronrubin@cs ivan@140: * ivan@140: * Last Updated: 15.8.2009 ivan@140: * ivan@140: *************************************************************************/ ivan@140: ivan@140: #include "mexutils.h" ivan@140: #include ivan@140: ivan@140: ivan@140: ivan@140: /* verify that the mxArray contains a double matrix */ ivan@140: ivan@140: void checkmatrix(const mxArray *param, char *fname, char *pname) ivan@140: { ivan@140: char errmsg[100]; ivan@140: sprintf(errmsg, "%.15s requires that %.25s be a double matrix.", fname, pname); ivan@140: if (!mxIsDouble(param) || mxIsComplex(param) || mxGetNumberOfDimensions(param)>2) { ivan@140: mexErrMsgTxt(errmsg); ivan@140: } ivan@140: } ivan@140: ivan@140: ivan@140: /* verify that the mxArray contains a 1-D double vector */ ivan@140: ivan@140: void checkvector(const mxArray *param, char *fname, char *pname) ivan@140: { ivan@140: char errmsg[100]; ivan@140: sprintf(errmsg, "%.15s requires that %.25s be a double vector.", fname, pname); ivan@140: if (!mxIsDouble(param) || mxIsComplex(param) || mxGetNumberOfDimensions(param)>2 || (mxGetM(param)!=1 && mxGetN(param)!=1)) { ivan@140: mexErrMsgTxt(errmsg); ivan@140: } ivan@140: } ivan@140: ivan@140: ivan@140: /* verify that the mxArray contains a double scalar */ ivan@140: ivan@140: void checkscalar(const mxArray *param, char *fname, char *pname) ivan@140: { ivan@140: char errmsg[100]; ivan@140: sprintf(errmsg, "%.15s requires that %.25s be a double scalar.", fname, pname); ivan@140: if (!mxIsDouble(param) || mxIsComplex(param) || mxGetNumberOfDimensions(param)>2 || ivan@140: mxGetM(param)!=1 || mxGetN(param)!=1) ivan@140: { ivan@140: mexErrMsgTxt(errmsg); ivan@140: } ivan@140: } ivan@140: ivan@140: ivan@140: /* verify that the mxArray contains a sparse matrix */ ivan@140: ivan@140: void checksparse(const mxArray *param, char *fname, char *pname) ivan@140: { ivan@140: char errmsg[100]; ivan@140: sprintf(errmsg, "%.15s requires that %.25s be sparse.", fname, pname); ivan@140: if (!mxIsSparse(param)) { ivan@140: mexErrMsgTxt(errmsg); ivan@140: } ivan@140: } ivan@140: ivan@140: ivan@140: /* verify that the mxArray contains a 1-dimensional cell array */ ivan@140: ivan@140: void checkcell_1d(const mxArray *param, char *fname, char *pname) ivan@140: { ivan@140: char errmsg[100]; ivan@140: sprintf(errmsg, "%.15s requires that %.25s be a 1-D cell array.", fname, pname); ivan@140: if (!mxIsCell(param) || mxGetNumberOfDimensions(param)>2 || (mxGetM(param)!=1 && mxGetN(param)!=1)) { ivan@140: mexErrMsgTxt(errmsg); ivan@140: } ivan@140: } ivan@140: