Объект MATLAB для массивов C++

MATLAB® обеспечивает интерфейс, clib.array, который переносит собственные массивы и std::vector C++ типы. Термин clib array относится к представлению MATLAB этих типов C++.

Массив клиба MATLAB задается только тогда, когда соответствующий собственный массив C++ или std::vector используется поддерживаемыми конструкциями C++ - входной параметр функции и выходные аргументы и представители данных. Предоставленные заголовки должны содержать определение типа элемента. Конструкция должна поддерживаться MATLAB и не удаляться при построении интерфейса.

Создайте массив объектов C++ MATLAB

Чтобы создать объект MATLAB, который представляет нативные массивы или std::vector C++ типов, вызовите MATLAB clibArray функция. Например, предположим, что ваша библиотека libname задает класс myclass. В MATLAB вы называете этот класс следующим clib.libname.myclass. Чтобы создать массив из пяти myclass объекты, используйте этот синтаксис:

myclassArray = clibArray('clib.libname.myclass',5);

Тип массива MATLAB myclassArray является clib.array.libname.myclass. Для доступа к элементу myclassArray, используйте индексацию MATLAB. Для примера для доступа к первому элементу используйте следующий синтаксис:

e = myclassArray(1)

Тип элемента clib.libname.myclass.

Кроме того, если тип элемента является фундаментальным типом, определяемым пользователем классом с конструктором по умолчанию или стандартным строковым типом, вызовите clib.array конструктор.

Чтобы создать массив из пяти элементов для определяемого пользователем класса, введите:

myclassArray = clib.array.libname.myclass(5)

Чтобы создать массив из фундаментального типа, вы должны знать тип элемента. Для получения дополнительной информации смотрите std:: vector < T > Целые типы и std::vector<T> Таблицы типов с плавающей точкой на C++ в MATLAB Data Type Отображения. Для примера, если тип C++ std::vector<int32_t>, тогда тип элемента MATLAB clib.libname.Int. Чтобы создать массив с пятью элементами, введите:

myIntArray = clib.array.libname.Int(5)

Чтобы создать массив из стандартного строкового типа, смотрите таблицу std:: vector < T > String Types для получения информации о типе элемента. Для примера, если тип C++ std::vector<std::string>, тогда тип элемента MATLAB clib.libname.std.String. Чтобы создать массив с пятью элементами, введите:

myStringArray = clib.array.libname.std.String(5)

Примечание

Сохранение объектов C++ в MAT-файл не поддерживается.

Примечание

Вы не можете создать массив объектов C++ с помощью квадратных скобок.

Преобразуйте массив MATLAB в объект массива C++

Можно использовать существующий массив MATLAB в качестве объекта массива C++. Вызовите clibConvertArray функция.

Свойства

Объектного массива MATLAB C++

Массивы MATLAB, созданные с clibArray или clibConvertArray иметь эти свойства.

Свойство

НапечататьДоступ

Описание

Dimensions

double vectorтолько для чтения

C++ размерности массива

Resizable

logical scalarтолько для чтения

  • true- разрешено добавление/удаление элемента

  • false- не допускается добавление/удаление элемента

Методы

Объектного массива MATLAB C++

Массивы MATLAB, созданные с clibArray или clibConvertArray иметь эти методы.

Метод

Подпись

Описание

append

append([element])

Добавьте необязательно заданный элемент в конец массива.

Для примитивного клибового массива MATLAB, если нет входного параметра, то добавляется нулевое значение.

Для клибового массива типа класса MATLAB, если нет входного параметра, то конструктор по умолчанию типа класса добавляется. Если конструктор по умолчанию типа класса удален, происходит ошибка во время выполнения.

removeLast

removeLast

Удалите последний элемент массива. Если массив клиба MATLAB пуст, возникает ошибка во время выполнения.

double

double

Преобразуйте в двойную точность.

int8

int8

Преобразуйте в int8.

uint8

uint8

Преобразование в uint8.

int16

int16

Преобразуйте в int16.

uint16

uint16

Преобразование в uint16.

int32

int32

Преобразование в int32.

uint32

uint32

Преобразование в uint32.

int64

int64

Преобразование в int64.

uint64

uint64

Преобразуйте в uint64.

logical

logical

Преобразуйте числовые значения в логические.

Обработайте нативные массивы фундаментального типа C++ как фундаментальные типы MATLAB

По умолчанию MATLAB представляет нативные массивы C++ фундаментальных типов с MATLAB clib.array типы. Если вам нужно сохранить фундаментальные типы массивов MATLAB с выходами, создайте интерфейс с ReturnCArrays для аргумента задано значение false. Для получения дополнительной информации см. clibgen.generateLibraryDefinition.

Управление памятью

Память для массивов MATLAB, созданная с clibArray или clibConvertArray принадлежит MATLAB. Чтобы освободить память, позвоните clibRelease.

См. также

| |

Похожие темы