Указатель на имя поля из массива структур, учитывая полевой номер
#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