Класс C++ для доступа к объектным массивам MATLAB
Использование ObjectArray
объекты для доступа к MATLAB® Объектные массивы. Как создать ObjectArray
, вызов createArray
в ArrayFactory
класс с использованием этого синтаксиса:
template <typename ItType, typename T> TypedArray<T> createArray(ArrayDimensions dims, ItType begin, ItType end)
Чтобы создать скалярный объект, вызывайте createScalar
используя этот синтаксис:
ObjectArray createScalar(const Object& val);
ObjectArray
определяется как:
using ObjectArray = TypedArray<Object>;
Пространство имен: | matlab::data |
Включите: | ObjectArray.hpp |
Вы не можете объединить элементы ObjectArray
в разнородный массив.
Если класс, определяющий Object
отвергает subsref
или subsasgn
, тогда вы не можете получить доступ к элементам ObjectArray
.
ObjectArray
Создайте ObjectArray
от myObject
объекты класса. Итераторы являются указателями на начало и конец массива.
class myObject { public: const std::vector<matlab::data::Object>& getObjs() const { return fObjs; } private: std::vector<matlab::data::Object> fObjs; }; const myObject& a1; const myObject& a2; matlab::data::ArrayFactory factory; const auto& objs = a1.getObjs(); matlab::data::ObjectArray arr1 = factory.createArray({1,2}, objs.begin(), objs.end());
ObjectArray
Итерация с использованием цикла for на основе области значений через ObjectArray
и извлеките объекты в массиве.
std::vector<matlab::data::Object> fObjs; // Use a range-based for loop to iterate over the objects. for (const auto& o : objs) { fObjs.push_back(o); }
Приложения C++ MEX и C++ Engine могут получить и задать значения свойств на объектах MATLAB. Для получения информации о том, как получить доступ к объектам MATLAB в этих приложениях, смотрите следующие темы:
Объекты MATLAB в MEX-функциях - для приложений C++ MEX
Получите объекты MATLAB и свойства доступа - для приложений C++ Engine