MATLAB: Passing containers.Map to MEX file

containers.mapMATLABmex

How do you pass a containers.Map object to a MEX file? How do you access the data from inside the MEX file?

Best Answer

Hi,
passing the variable is easy: just use it ;-). O.K., serious now. Passing is not the problem but doing anything meaningful will be. You will be able to call methods using mexCallMATLAB, e.g.,
/* cmap.c */
void mexFunction(int nlhs, mxArray* plhs[],
int nrhs, const mxArray* prhs[]) {
mexCallMATLAB(1, plhs, 2, prhs, "isKey");
}
and in MATLAB:
x = containers.Map('foo', 42);
v = cmap(x, 'foo');
Otherwise: pass x.keys and x.values to mex function and work with the two cell arrays ...
Titus