2024年6月6日发(作者:)

const char *fieldnames[2] = {"pos","name"};

const mwIndex index = 0;

mxArray pm(m, n, nfields, fieldnames);

mxArray mpos = Staruct2mwArray(&(pStaruct->pos));

pm(fieldnames[0], 1, 1) = mpos;

mxArray mname(pStaruct->name);

pm(fieldnames[1], 1, 1) = mname;

return pm;

}

(3)mxArray转换成结构体:

struct Coordinate *mwArray2Staruct(mwArray pm)

{

// 代码仅处理 name 字段 pos 字段是三个简单类型省略

struct Coordinate *pStaruct = new struct Coordinate;

const int nfields = 2;

const char *fieldnames[2] = {"pos","name"};

mwArray mwStr = (fieldnames[1], 1, 1);

char *str = strdup(ng());

memcpy(pStaruct->name,str,sizeof(char)*ARRAYSIZE);

return pStaruct;

}

(4)mwArray转换成结构体:

struct Coordinate *mxArray2Staruct(mxArray *pm)

{

// 代码仅处理 name 字段 pos 字段是三个简单类型省略

struct Coordinate *pStaruct = new struct Coordinate;

mxArray * mxname = mxGetFieldByNumber(pm, 1, 1)

mxArray * str = mxGetPr(mxname);

memcpy(pStaruct->name,str,sizeof(char)*ARRAYSIZE);

return pStaruct;

}