mxGetElementSize (C)

Количество байтов, требуемых сохранить каждый элемент данных

Для комплексного mxArray, созданного с чередованным комплексным API, mxGetElementSize возвращает дважды значение, которое возвращает функция в отдельном комплексном API. Для получения дополнительной информации см. Вопросы совместимости.

Синтаксис C

#include "matrix.h"
size_t mxGetElementSize(const mxArray *pm);

Описание

Вызовите mxGetElementSize, чтобы определить количество байтов в каждом элементе данных mxArray. Например, если классом MATLAB® mxArray является int16, mxArray хранит каждый элемент данных как 16-битное (2-байтовое) целое число со знаком. Таким образом mxGetElementSize возвращает 2.

mxGetElementSize полезен при использовании стандартной программы неMATLAB, чтобы управлять элементами данных. Например, функция C, memcpy требует размера элементов, которые вы намереваетесь скопировать.

Входные параметры

развернуть все

Указатель на mxArray.

Выходные аргументы

развернуть все

Количество байтов, требуемых сохранить один элемент заданного mxArray.

Если pm комплексный числовой, то данные в выходном аргументе зависят, на которой версии Матричного API C вы используете.

  • Если вы создаете с чередованным комплексным API ( опция mex -R2018a), то возвращаемым значением является sizeof(std::complex<T>), где T является типом данных массива.

  • Если вы создаете с отдельным комплексным API ( опция mex -R2017b), то функция возвращает количество байтов для типа данных массива независимо, является ли массив комплексным или действительным.

Если pm указывает на ячейку или структуру, то mxGetElementSize возвращает размер указателя. Функция не возвращает размер всех элементов в каждой ячейке или поле структуры.

Возвращается 0 на отказе. Основная причина отказа - то, что pm указывает на mxArray, имеющий нераспознанный класс.

Примеры

Смотрите эти примеры в matlabroot/extern/examples/refbook:

Вопросы совместимости

развернуть все

Поведение изменяется в R2018a

Смотрите также

|

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

Для просмотра документации необходимо авторизоваться на сайте