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