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