mxCreateStructArray (C и Фортран)

Массив структур N-D

Синтаксис C

#include "matrix.h"
mxArray *mxCreateStructArray(mwSize ndim, const mwSize *dims,
  int nfields, const char **fieldnames);

Синтаксис языка ФОРТРАН

#include "fintrf.h"
mwPointer mxCreateStructArray(ndim, dims, nfields, fieldnames)
mwSize ndim
mwSize dims(ndim)
integer*4 nfields
character*(*) fieldnames(nfields)

Аргументы

ndim

Количество размерностей. Если вы устанавливаете ndim быть меньше, чем 2, mxCreateStructArray создает двумерный mxArray.

dims

Массив размерностей. Каждый элемент в массиве размерностей содержит размер массива в той размерности. Например, в C, установка dims[0] к 5 и dims[1] к 7 устанавливают 5-by-7 mxArray. На Фортране установка dims(1) к 5 и dims(2) к 7 устанавливают 5-by-7 mxArray. Как правило, массив dims должен иметь элементы ndim.

nfields

Количество полей в каждом элементе. Положительное целое число.

имена полей

Список имен полей. Имена полей должны быть допустимыми идентификаторами MATLAB®, что означает, что они не могут быть NULL или пустой.

Каждое имя поля структуры должно начаться с буквы и является чувствительным к регистру. Остальная часть имени может содержать буквы, цифры и символы подчеркивания. Чтобы определить максимальную длину имени поля, используйте функцию namelengthmax.

Возвращается

Указатель на созданный mxArray, в случае успеха. Если неудачный в автономном (нефайл MEX) приложение, возвращает NULL в C (0 на Фортране). Если неудачный в файле MEX, файл MEX отключает и возвращает управление в посдказку MATLAB. Функция неудачна, когда существует недостаточно свободного пространства "кучи", чтобы создать mxArray.

Описание

Вызовите mxCreateStructArray, чтобы создать безлюдную структуру mxArray. Каждый элемент структуры mxArray содержит то же количество полей (заданный в nfields). Каждое поле имеет имя; список имен задан в fieldnames. Структура MATLAB mxArray концептуально идентична массиву structs на языке C.

Каждое поле содержит один указатель mxArray. mxCreateStructArray инициализирует каждое поле к NULL в C (0 на Фортране). Вызовите mxSetField или mxSetFieldByNumber, чтобы поместить non-NULL указатель mxArray в поле.

Когда вы закончите использовать возвращенную структуру mxArray, вызовите mxDestroyArray, чтобы исправить его пробел.

Любые запаздывающие одноэлементные размерности, заданные в аргументе dims, автоматически удалены из полученного массива. Например, если ndim равняется 5, и dims равняется [4 1 7 1 1], полученному массиву дают размерности 4-by-1-by-7.

Примеры

См. следующие примеры в matlabroot / extern / examples / mx.

Представлено до R2006a

Была ли эта тема полезной?