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