从结构数组中的字段编号,给定的字段名称
#include“ matrix.h”
#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
。
mxgetfield
,,,,mxgetfieldbynumber
,,,,mxgetfieldnamebynumber
,,,,mxgetnumberoffields
,,,,mxisscruct
,,,,MXSETFIELD
,,,,mxsetfieldbynumber