主要内容

在C MEX文件中传递结构和单元格数组

将结构和单元格数组传递到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]

相关的话题