Чтобы создать массив ячеек, используйте matlab::data::ArrayFactory
функцию .createCellArray
Создайте CellArray
что эквивалентно MATLAB® массив ячеек, заданный этим выражением MATLAB. Обратите внимание, что MATLAB присваивает камеры в основном порядке.
C = {'Character Array',... [true true false true];... [2.2 3.3 -4.2 6.0],... int32(-3374)};
Создайте ArrayFactory
:
matlab::data::ArrayFactory factory;
Функции createCellArray
и определяют каждую камеру, содержащуюся в массиве ячеек:
matlab::data::CellArray C = factory.createCellArray({ 2,2 }, factory.createCharArray("Character Array"), factory.createArray<double>({ 1, 4 }, { 2.2, 3.3, -4.2, 6.0}), factory.createArray<bool>({ 1, 4 }, { true, true, false, true }), factory.createScalar<int32_t>(-3374) );
Измените массив, перезаписав значение в камере, упомянутом в MATLAB как C{1,1}
.
C[0][0] = factory.createCharArray("New Character Array");
Получите ссылку на камеру, содержащую двойной массив, и измените первый элемент на -2.2
.
TypedArrayRef<double> doubleArray = C[1][0]; doubleArray[0] = -2.2;
Отобразите новые значения в камере, содержащей двойной массив:
TypedArray<double> const newArray = C[1][0]; for (auto e : newArray) { std::cout << e << std::endl; }