MATLAB® обеспечивает интерфейс, clib.array, который переносит собственные массивы и std::vector C++ типы. Термин clib array относится к представлению MATLAB этих типов C++.
Массив клиба MATLAB задается только тогда, когда соответствующий собственный массив C++ или std::vector используется поддерживаемыми конструкциями 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++. Вызовите clibConvertArray функция.
Массивы MATLAB, созданные с clibArray или clibConvertArray иметь эти свойства.
Свойство | Напечатать | Доступ | Описание |
|---|---|---|---|
| double vector | только для чтения | C++ размерности массива |
| logical scalar | только для чтения |
|
Массивы MATLAB, созданные с clibArray или clibConvertArray иметь эти методы.
Метод | Подпись | Описание |
|---|---|---|
| append([element]) | Добавьте необязательно заданный элемент в конец массива. Для примитивного клибового массива MATLAB, если нет входного параметра, то добавляется нулевое значение. Для клибового массива типа класса MATLAB, если нет входного параметра, то конструктор по умолчанию типа класса добавляется. Если конструктор по умолчанию типа класса удален, происходит ошибка во время выполнения. |
| removeLast | Удалите последний элемент массива. Если массив клиба MATLAB пуст, возникает ошибка во время выполнения. |
| double | Преобразуйте в двойную точность. |
|
| Преобразуйте в |
|
| Преобразование в |
|
| Преобразуйте в |
|
| Преобразование в |
|
| Преобразование в |
|
| Преобразование в |
|
| Преобразование в |
|
| Преобразуйте в |
| logical | Преобразуйте числовые значения в логические. |
По умолчанию MATLAB представляет нативные массивы C++ фундаментальных типов с MATLAB clib.array типы. Если вам нужно сохранить фундаментальные типы массивов MATLAB с выходами, создайте интерфейс с ReturnCArrays для аргумента задано значение false. Для получения дополнительной информации см. clibgen.generateLibraryDefinition.
Память для массивов MATLAB, созданная с clibArray или clibConvertArray принадлежит MATLAB. Чтобы освободить память, позвоните clibRelease.
clibArray | clibConvertArray | clibRelease