Для создания массива ячеек используйте 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;
}