Создание матрицы из векторов в C ++ с помощью uBLAS - PullRequest
4 голосов
/ 22 июня 2011

Если у меня есть n векторов длины m и я хочу объединить их для создания матрицы mxn, каков наиболее эффективный способ сделать это в C ++ с использованием Boost uBLAS?

Очевидно, что я могу просто зациклить их и назначить каждому элементу матрицы соответствующее векторное значение, но я чувствую, что есть лучший способ сделать это, о котором я не знаю.

1 Ответ

2 голосов
/ 22 июня 2011

Вместо того, чтобы поэлементно повторять весь список векторов, я бы попытался назначить каждый из ваших векторов непосредственно в соответствующий матричный столбец .

template<class AE >  
BOOST_UBLAS_INLINE matrix_column &  operator= (const vector_expression< AE > &ae) 

Вы должны скопировать каждый элемент в какой-то момент, но это должно быть быстрее, чем вложенный цикл (или ошибка перфорации в Boost.uBlas, если нет).

...