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.

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

|

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

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