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