2013-04-19 2 views
3

Я начал использовать Armadillo сравнительно недавно, и, хотя мне это очень нравится, было бы полезно, если бы у него были способы хранения 4D-матриц. Есть ли что-то, что мне не хватает, или обходной путь для этого?4-мерная матрица в Armadillo

Последнее измерение было бы просто иметь размер трех, так что в теории я мог бы что-то вроде:

std::vector<arma::cube> 4Dmatrix(3); 
for (int index=0; index<3; index++) 
    4Dmatrix[index] = cube(size1, size2, size3); 

Тем не менее, чувствует, как должно быть лучше.

Заранее благодарен!

ответ

0

Нет, нет встроенного способа. Если вы посмотрите на источник, вы увидите, что существуют отдельные реализации для векторов, матриц и кубов.

Возможно, Boost multi array может пригодиться вам.

1

Возможно, вы можете использовать класс field, который хранит произвольные объекты как элементы в структуре вектора, матрицы или куба. Например. (из документации) для создания field, содержащего vec Векторы:

// create a field containing vectors 
field<vec> F(3,2);