Указатель на имя поля из массива структур, учитывая полевой номер
#include "matrix.h" const char *mxGetFieldNameByNumber(const mxArray *pm, int fieldnumber);
#include "fintrf.h" character*(*) mxGetFieldNameByNumber(pm, fieldnumber) mwPointer pm integer*4 fieldnumber
pm
Указатель на структуру mxArray
fieldnumber
Положение желаемого поля. Например, в C, чтобы получить имя первого поля, устанавливают fieldnumber
на 0; чтобы получить имя второго поля, установите fieldnumber
на 1; и так далее. На Фортране, чтобы получить имя первого поля, устанавливают fieldnumber
на 1
; чтобы получить имя второго поля, установите fieldnumber
на 2
; и так далее.
Указатель на n
th имя поля, на успехе. Возвращает NULL
в C (0
на Фортране) на отказе. Частые причины отказа включают
Определение указателя массивов pm
, который не указывает на структуру mxArray
. Вызовите mxIsStruct
, чтобы определить, указывает ли pm
на структуру mxArray
.
Определение значения fieldnumber
вне границ количества полей в структуре mxArray
. В C fieldnumber
0 представляет первое поле и fieldnumber
, N-1
представляет последнее поле, где N
является количеством полей в структуре mxArray
. На Фортране fieldnumber
1
представляет первое поле и fieldnumber
, N
представляет последнее поле.
Вызовите mxGetFieldNameByNumber
, чтобы получить имя поля в данной структуре mxArray
. Типичное использование mxGetFieldNameByNumber
должно вызвать его в цикле, чтобы получить имена всех полей в данном mxArray
.
Считайте структуру MATLAB® инициализированной к:
patient.name = 'John Doe'; patient.billing = 127.00; patient.test = [79 75 73; 180 178 177.5; 220 210 205];
В C полевой номер 0
представляет поле name
; полевой номер 1
представляет поле billing
; полевой номер 2
представляет поле test
. Полевой номер кроме 0
, 1
или 2
заставляет mxGetFieldNameByNumber
возвращать NULL
.
На Фортране полевой номер 1
представляет поле name
; полевой номер 2
представляет поле billing
; полевой номер 3
представляет поле test
. Полевой номер кроме 1
, 2
или 3
заставляет mxGetFieldNameByNumber
возвращать 0
.
Смотрите эти примеры в
:matlabroot/extern/examples/refbook
Смотрите эти примеры в
:matlabroot/extern/examples/mx
Смотрите эти примеры в
:matlabroot/extern/examples/mex
mxGetField
, mxGetFieldByNumber
, mxGetFieldNumber
, mxGetNumberOfFields
, mxIsStruct
, mxSetField
, mxSetFieldByNumber