主要内容

mxgetfieldnumber(C和Fortran)

从结构数组中的字段编号,给定的字段名称

C语法

#include“ matrix.h”

fortran语法

#include“ fintrf.h”整数*4 mxgetfieldnumber(pm,fieldname)mwpointer pm pm prain*(*)fieldname

参数

下午

指向结构mxarray

fieldname

结构中的字段名称mxarray

返回

指定的字段号fieldname,成功。在C中,第一个字段的字段编号为0,第二个字段的字段编号为1, 等等。在Fortran中,第一个字段的字段数为1,第二个字段的字段编号为2, 等等。返回-1在c(0在Fortran中)失败。失败的常见原因包括

  • 指定数组指针下午这没有指向结构mxarray。称呼mxisscruct确定是否下午指向结构mxarray

  • 指定fieldname不存在的领域。

描述

如果您知道字段的名称但不知道其字段号,请致电mxgetfieldnumber。相反,如果您知道字段号但不知道其字段名称,请致电mxgetfieldnamebynumber

例如,考虑一个MATLAB®初始化为:

病人。名称='John Doe';病人billing = 127.00;atter.test = [79 75 73;180 178 177.5;220 210 205];

在C中,该领域姓名有一个字段号0;场计费有一个字段号1;和领域测试有一个字段号2。如果您打电话mxgetfieldnumber并指定除了其他任何事物的字段名称姓名,,,,计费, 或者测试,,,,mxgetfieldnumber返回-1

如果你有1-经过-1结构,然后致电:

mxgetfield(PA,索引,“ field_name”);

等同于致电:

field_num = mxgetFieldNumber(pa,“ field_name”);mxgetfieldbynumber(PA,index,field_num);

在哪里指数0

在Fortran,领域姓名有一个字段号1;场计费有一个字段号2;和领域测试有一个字段号3。如果您打电话mxgetfieldnumber并指定除了其他任何事物的字段名称姓名,,,,计费, 或者测试,,,,mxgetfieldnumber返回0

如果你有1-经过-1结构,然后致电:

mxgetfield(pm,index,'fieldName');

等同于致电:

fieldNum = mxgetFieldNumber(pm,'fieldName');mxgetfieldbynumber(pm,index,fieldnum);

在哪里指数1

例子

Matlabroot/extern/示例/mx

也可以看看

mxgetfield,,,,mxgetfieldbynumber,,,,mxgetfieldnamebynumber,,,,mxgetnumberoffields,,,,mxisscruct,,,,MXSETFIELD,,,,mxsetfieldbynumber

在R2006a之前引入