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

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

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

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

Создать объект MATLAB, который представляет собственные массивы C++ или std::vector типы, вызовите 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)

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

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

Чтобы создать массив из стандартного строкового типа, смотрите станд.:: вектор <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 функция.

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

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

Свойство

ВводДоступ

Описание

Dimensions

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

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

Resizable

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

  • true— добавьте/удалите позволенный элемент

  • false— добавьте/удалите элемент, не позволенный

Методы объекта C++ массивов MATLAB

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

Метод

Подпись

Описание

append

append([element])

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

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

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

removeLast

removeLast

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

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++ фундаментальных типов с clib.array MATLAB типы. Если необходимо сохранить основные типы массива MATLAB с выходными параметрами, то создайте интерфейс с ReturnCArrays набор аргумента к false. Для получения дополнительной информации смотрите clibgen.generateLibraryDefinition.

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

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

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

| |

Похожие темы