| External Interfaces/API Reference | ![]() |
Get a field value, given a field name and an index in a structure array
C Syntax
#include "matrix.h" mxArray *mxGetField(const mxArray *array_ptr, int index, const char *field_name);
Arguments
array_ptr
Pointer to a structure mxArray.
index
mxArray has an index of 0, the second element has an index of 1, and the last element has an index of N-1, where N is the total number of elements in the structure mxArray.
field_name
Returns
A pointer to the mxArray in the specified field at the specified field_name, on success, and NULL otherwise. One possibility is that there is no value assigned to the specified field. Another possibility is that there is a value, but the call failed. Common causes of failure include:
array_ptr that does not point to a structure mxArray. To determine if array_ptr points to a structure mxArray, call mxIsStruct. index to an element past the end of the mxArray. For example, given a structure mxArray that contains 10 elements, you cannot specify an index greater than 9. field_name. Call mxGetFieldNameByNumber or mxGetFieldNumber to get existing field names. mxArray.Description
Call mxGetField to get the value held in the specified element of the specified field. In pseudo-C terminology, mxGetField returns the value at
array_ptr[index].field_name
mxGetFieldByIndex is similar to mxGetField. Both functions return the same value. The only difference is in the way you specify the field. mxGetFieldByIndex takes field_num as its third argument, and mxGetField takes field_name as its third argument.
mxGetField(pa, index, "field_name");
field_num = mxGetFieldNumber(pa, "field_name"); mxGetFieldByNumber(pa, index, field_num);
where index is zero if you have a one-by-one structure.
See Also
mxGetFieldByNumber, mxGetFieldNameByNumber, mxGetFieldNumber, mxGetNumberOfFields, mxIsStruct, mxSetField, mxSetFieldByNumber
| mxGetEps | mxGetFieldByNumber | ![]() |