主要内容

mxGetFieldNumber (C和Fortran)

字段数量从数组结构,给定的字段名

C语法

#包括“矩阵。h " int mxGetFieldNumber (const mxArray *点,const char *字段名);

Fortran语言的语法

# include“fintrf。h”整数* 4 mxGetFieldNumber(点,字段名)mwPointer点字符* (*)fieldname

参数

指向结构的指针mxArray

字段名

名称字段的结构mxArray

返回

字段指定的数量字段名在成功。在C语言中,第一个字段的字段数0,第二个字段有一个字段的数量1,等等。在Fortran,第一个字段有一个字段的数量1,第二个字段有一个字段的数量2,等等。返回1在C (0在Fortran)失败。常见的原因包括失败

  • 指定数组指针这并不指向一个结构mxArray。调用mxIsStruct以确定是否指向一个结构mxArray

  • 指定字段名一个不存在的领域。

描述

如果你知道一个字段的名称,但不知道它的字段数,电话mxGetFieldNumber。相反,如果你知道数量但不知道它的字段名,电话mxGetFieldNameByNumber

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

patient.name =“John Doe”;病人。计费= 127.00; patient.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、索引field_num);

在哪里指数0

在Fortran,字段的名字有一个字段的数量1;这个领域计费有一个字段的数量2;和领域测试有一个字段的数量3。如果你叫mxGetFieldNumber并指定一个字段名以外的任何东西的名字,计费,或测试,mxGetFieldNumber返回0

如果你有一个1——- - - - - -1结构,然后调用:

mxGetField(点、索引的字段名);

相当于调用:

fieldnum = mxGetFieldNumber(点,“字段名”);mxGetFieldByNumber (pm、索引fieldnum);

在哪里指数1

例子

看到这些例子matlabroot走读生/ / mx例子:

版本历史

之前介绍过的R2006a