Класс 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++