将结构和单元格数组传递到MEX文件与传递任何其他数据类型类似,只是C Matrix API中的数据本身是有类型的mxArray
.在实践中,mxGetField
(结构)mxGetCell
(对于单元格数组)返回类型的指针mxArray
.你可以像对待其他类型的指针一样对待指针mxArray
.来传递包含在mxArray
在C例程中,使用API函数mxGetData
来访问它。
这个MEX文件示例使用C Matrix API。的c++ MEX文件示例MATLAB数据API,请参阅phonebook.cpp
.有关使用此API创建MEX文件的信息,请参见c++墨西哥人的功能.
本示例采用米
——- - - - - -n
结构矩阵作为输入,并返回一个新的1
——- - - - - -1
包含以下字段的结构:
文本输入生成米
——- - - - - -n
单元阵列
数值输入(非复数、标量值)生成米
——- - - - - -n
例如,与输入具有相同类ID的数字向量int
,双
,等等。
要构建这个示例,在命令提示符类型下:
墨西哥人phonebook.c
要了解这个程序是如何工作的,请创建如下结构:
朋友(1). name =“约旦罗伯特。”;朋友(1)。电话= 3386;朋友(2). name =玛丽·史密斯的;朋友(2)。电话= 3912;朋友(3). name =史黛西植物的;朋友(3)。电话= 3238;朋友(4). name =“哈利Alpert”;朋友(4)。电话= 3077;
调用MEX文件:
电话簿(朋友)
Ans = name: {1x4 cell} phone: [3386 3912 3238 3077]