Класс 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); }
MEX C++ и приложения Engine C++ могут получить и установить значения свойств на объектах MATLAB. Для получения информации о том, как получить доступ к объектам MATLAB в этих приложениях, смотрите эти темы:
Объекты MATLAB в MEX-функциях - для приложений C++ MEX
Get MATLAB Objects and Access Properties- для приложений Engine C++