Согласно this page должна быть sum
функция, обеспечиваемая в ublas
, но я не могу получить следующие компиляции:Как суммировать все элементы в ublas-матрице?
boost::numeric::ublas::matrix<double> mymatrix;
std::cout << boost::numeric::ublas::sum(mymatrix);
ошибка:
testcpp:146:144: error: no matching function for call to ‘sum(boost::numeric::ublas::matrix&)’
Я #include
ING:
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/matrix_proxy.hpp>
Я пропустил включить, или я неправильно понял документы? Как бы мне это достичь (я пытаюсь подвести все элементы матрицы и создать один double
)?
Эта унарная сумма является векторным, а не матричным выражением. Тривиальный изоморфизм M_m, n ≅ R ** {m * n}, по-видимому, оставлен анзацем. Больше не уверен в видимости, но я думаю, вы можете добраться до лежащего (плоского) контейнера. Затем вы можете использовать, например. std :: partial_sum. – Solkar