exponenta event banner

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

MATLAB ® обеспечивает интерфейс ,clib.array, который охватывает собственные массивы C++ и std::vector типы. Термин массив clib относится к представлению 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)

Чтобы создать массив из фундаментального типа, необходимо знать тип элемента. Дополнительные сведения см. в разделе std:: vector < T > Целочисленные типы иstd::vector<T> Таблицы типов с плавающей запятой в сопоставлении типов данных C++ и MATLAB. Например, если тип 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 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++ фундаментальных типов с MATLAB clib.array типы. Если необходимо сохранить фундаментальные типы массивов MATLAB с выходами, создайте интерфейс с помощью ReturnCArrays аргумент имеет значение false. Дополнительные сведения см. в разделе clibgen.generateLibraryDefinition.

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

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

См. также

| |

Связанные темы