C++ Массивы ячеек

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

Смотрите также

Похожие темы