00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 const char *mxGetClassName(const mxArray *pa) {
00024 switch (mxGetClassID(pa)) {
00025 case mxSPARSE_CLASS:
00026 return("sparse");
00027 case mxDOUBLE_CLASS:
00028 return("double");
00029 case mxSINGLE_CLASS:
00030 return("single");
00031 case mxINT8_CLASS:
00032 return("int8");
00033 case mxUINT8_CLASS:
00034 return("uint8");
00035 case mxINT16_CLASS:
00036 return("int16");
00037 case mxUINT16_CLASS:
00038 return("uint16");
00039 case mxINT32_CLASS:
00040 return("int32");
00041 case mxUINT32_CLASS:
00042 return("uint32");
00043 case mxINT64_CLASS:
00044 return("int64");
00045 case mxUINT64_CLASS:
00046 return("uint64");
00047 case mxCHAR_CLASS:
00048 return("char");
00049 case mxLOGICAL_CLASS:
00050 return("logical");
00051 case mxFUNCTION_CLASS:
00052 return("function handle");
00053 case mxOBJECT_CLASS:
00054 return("object");
00055 case mxOPAQUE_CLASS:
00056 return("opaque");
00057 case mxUNKNOWN_CLASS:
00058 return("unknown");
00059 default:
00060 return("unrecognized");
00061 }
00062 }
00063
00064
00065 size_t
00066 mxGetElementSize(const mxArray *pa) {
00067 switch(mxGetClassID(pa)) {
00068 case mxSTRUCT_CLASS:
00069 case mxOBJECT_CLASS:
00070
00071 return sizeof(mxArray *);
00072 case mxCELL_CLASS:
00073 return sizeof(mxArray *);
00074 case mxSPARSE_CLASS:
00075 return sizeof(double);
00076 case mxDOUBLE_CLASS:
00077 return sizeof(double);
00078 case mxSINGLE_CLASS:
00079 return sizeof(float);
00080 case mxCHAR_CLASS:
00081 return sizeof(mxChar);
00082 case mxLOGICAL_CLASS:
00083 return sizeof(mxLogical);
00084 case mxINT8_CLASS:
00085 case mxUINT8_CLASS:
00086 return 1;
00087 case mxINT16_CLASS:
00088 case mxUINT16_CLASS:
00089 return 2;
00090 case mxINT32_CLASS:
00091 case mxUINT32_CLASS:
00092 return 4;
00093 case mxINT64_CLASS:
00094 case mxUINT64_CLASS:
00095 return 8;
00096 case mxFUNCTION_CLASS:
00097 case mxOPAQUE_CLASS:
00098 default:
00099 return 0;
00100 }
00101 }
00102
00103 bool
00104 mxIsFromGlobalWS(const mxArray *pa)
00105 {
00106 return(0);
00107 }
00108
00109 bool
00110 mxIsEmpty(const mxArray *pm)
00111 {
00112 return(mxGetNumberOfElements(pm) == 0);
00113 }
00114
00115 bool
00116 mxIsNumeric(const mxArray *pm)
00117 {
00118 switch (mxGetClassID(pm)) {
00119 case mxSPARSE_CLASS:
00120 case mxDOUBLE_CLASS:
00121 case mxSINGLE_CLASS:
00122 case mxINT8_CLASS:
00123 case mxUINT8_CLASS:
00124 case mxINT16_CLASS:
00125 case mxUINT16_CLASS:
00126 case mxINT32_CLASS:
00127 case mxUINT32_CLASS:
00128 case mxINT64_CLASS:
00129 case mxUINT64_CLASS:
00130 return(1);
00131
00132 break;
00133 default:
00134
00135 return(0);
00136
00137 break;
00138 }
00139 }
00140
00141 bool
00142 mxIsDouble(const mxArray *pm)
00143 {
00144 return (mxGetClassID(pm) == mxDOUBLE_CLASS);
00145 }
00146
00147 bool
00148 mxIsChar(const mxArray *pm)
00149 {
00150 return (mxGetClassID(pm) == mxCHAR_CLASS);
00151 }
00152
00153 bool
00154 mxIsCell(const mxArray *pm)
00155 {
00156 return (mxGetClassID(pm) == mxCELL_CLASS);
00157 }
00158
00159 bool
00160 mxIsStruct(const mxArray *pm)
00161 {
00162 return (mxGetClassID(pm) == mxSTRUCT_CLASS);
00163 }
00164
00165 bool
00166 mxIsFunctionHandle(const mxArray *pm)
00167 {
00168 return (mxGetClassID(pm) == mxFUNCTION_CLASS);
00169 }
00170
00171 bool
00172 mxIsObject(const mxArray *pm)
00173 {
00174 return (mxGetClassID(pm) == mxOBJECT_CLASS);
00175 }
00176
00177 bool
00178 mxIsOpaque(const mxArray *pm)
00179 {
00180 return (mxGetClassID(pm) == mxOPAQUE_CLASS);
00181 }
00182
00183 bool
00184 mxIsClass(const mxArray *pm, const char *name)
00185 {
00186 mex2c_unimplemented("mxIsClass");
00187 return (0);
00188 }
00189
00190 bool
00191 mxIsSingle(const mxArray *pm)
00192 {
00193 return (mxGetClassID(pm) == mxSINGLE_CLASS);
00194 }
00195
00196 bool
00197 mxIsLogical(const mxArray *pa)
00198 {
00199
00200
00201 return (mxGetClassID(pa) == mxLOGICAL_CLASS);
00202 }
00203
00204 bool
00205 mxIsLogicalScalar(const mxArray *pa)
00206 {
00207 return mxIsLogical(pa) && (mxGetNumberOfElements(pa) == 1);
00208 }
00209
00210 bool
00211 mxIsLogicalScalarTrue(const mxArray *pa)
00212 {
00213 return mxIsLogicalScalar(pa) && mxGetLogicals(pa)[0];
00214 }
00215
00216 bool
00217 mxIsInt8(const mxArray *pa)
00218 {
00219 return (mxGetClassID(pa) == mxINT8_CLASS);
00220 }
00221
00222 bool
00223 mxIsUint8(const mxArray *pa)
00224 {
00225 return (mxGetClassID(pa) == mxUINT8_CLASS);
00226 }
00227
00228 bool
00229 mxIsInt16(const mxArray *pa)
00230 {
00231 return (mxGetClassID(pa) == mxINT16_CLASS);
00232 }
00233
00234 bool
00235 mxIsUint16(const mxArray *pa)
00236 {
00237 return (mxGetClassID(pa) == mxUINT16_CLASS);
00238
00239 }
00240
00241 bool
00242 mxIsInt32(const mxArray *pa)
00243 {
00244 return (mxGetClassID(pa) == mxINT32_CLASS);
00245 }
00246
00247 bool
00248 mxIsUint32(const mxArray *pa)
00249 {
00250 return (mxGetClassID(pa) == mxUINT32_CLASS);
00251 }
00252
00253 bool
00254 mxIsInt64(const mxArray *pa)
00255 {
00256 return (mxGetClassID(pa) == mxINT64_CLASS);
00257 }
00258
00259 bool
00260 mxIsUint64(const mxArray *pa)
00261 {
00262 return (mxGetClassID(pa) == mxUINT64_CLASS);
00263 }
00264
00265
00266