Создание матрицы из векторов на C++ с помощью uBLAS

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

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


person al0    schedule 22.06.2011    source источник


Ответы (1)


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

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

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

person Steve Townsend    schedule 22.06.2011