2015-06-02 2 views
1

Предоставлено vector<vector<double > > A_STL, я хочу, чтобы оно преобразовано в arma::mat A.Как преобразовать вектор STL вектора в армадило?

+0

Что вы попробовали? Что не сработало? И почему вы настаиваете на искажении своего форматирования? – Quentin

+0

Поскольку A_STL на самом деле является вектором векторов, а не только вектором double –

+0

Да, увидел это и не изменил его. Но без «правильного форматирования» ваши шаблонные экземпляры становятся раздетыми как неверные тэги html. – Quentin

ответ

3

Одним простым способом было бы сгладить вектор векторной матрицы в один размерный вектор. Поэтому вы можете использовать свой конструктор mat(std::vector).

пример кода (не проверено):

// Flatten your A_STL into A_flat 
std::vector<double> A_flat; 
for (auto vec : A_STL) { 
    for (auto el : vec) { 
    A_flat.push_back(el); 
    } 
} 
// Create your Armadillo matrix A 
mat A(A_flat); 

Остерегайтесь того, как вы заказываете вектор вектора. A_flat должен иметь значение столбца.

Смежные вопросы