matlab::data::ObjectArray

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

Приложения C++ MEX и C++ Engine могут получить и задать значения свойств на объектах MATLAB. Для получения информации о том, как получить доступ к объектам MATLAB в этих приложениях, смотрите следующие темы:

См. также

| |

Введенный в R2017b