mxGetFieldNameByNumber (C and Fortran)
Pointer to field name from structure array, given field number
C Syntax
#include "matrix.h" const char *mxGetFieldNameByNumber(const mxArray *pm, int fieldnumber);
Fortran Syntax
#include "fintrf.h" character*(*) mxGetFieldNameByNumber(pm, fieldnumber) mwPointer pm integer*4 fieldnumber
Arguments
pmPointer to a structure
mxArrayfieldnumberPosition of the desired field. For instance, in C, to get the name of the first field, set
fieldnumberto 0; to get the name of the second field, setfieldnumberto 1; and so on. In Fortran, to get the name of the first field, setfieldnumberto1; to get the name of the second field, setfieldnumberto2; and so on.
Returns
Pointer to the nth field name, on success. Returns
NULL in C (0 in Fortran) on failure. Common
causes of failure include
Specifying an array pointer
pmthat does not point to a structuremxArray. CallmxIsStructto determine whetherpmpoints to a structuremxArray.Specifying a value of
fieldnumberoutside the bounds of the number of fields in the structuremxArray. In C,fieldnumber0 represents the first field, andfieldnumberN-1represents the last field, whereNis the number of fields in the structuremxArray. In Fortran,fieldnumber1represents the first field, andfieldnumberNrepresents the last field.
Description
Call mxGetFieldNameByNumber to get the name of a field in the
given structure mxArray. A typical use of
mxGetFieldNameByNumber is to call it inside a loop to get the
names of all the fields in a given mxArray.
Consider a MATLAB® structure initialized to:
patient.name = 'John Doe'; patient.billing = 127.00; patient.test = [79 75 73; 180 178 177.5; 220 210 205];
In C, the field number 0 represents the field
name; field number 1 represents field
billing; field number 2 represents field
test. A field number other than 0,
1, or 2 causes
mxGetFieldNameByNumber to return
NULL.
In Fortran, the field number 1 represents the field
name; field number 2 represents field
billing; field number 3 represents field
test. A field number other than 1,
2, or 3 causes
mxGetFieldNameByNumber to return 0.
Examples
To open an example, type:
edit([fullfile(matlabroot,"extern","examples","refbook","filename")]);
where filename is:
To open an example, type:
edit([fullfile(matlabroot,"extern","examples","mx","filename")]);
where filename is:
To open an example, type:
edit([fullfile(matlabroot,"extern","examples","mex","filename")]);
where filename is:
See Also
mxGetField,
mxGetFieldByNumber, mxGetFieldNumber, mxGetNumberOfFields, mxIsStruct,
mxSetField,
mxSetFieldByNumber
Version History
Introduced before R2006a