2012-03-25 6 views
3

Ich arbeite an Matrix-Multiplikation, und ich möchte einen Iterator über eine einzelne Zeile einer Boost-Matrix? Kann das gemacht werden?Wie erhalten Sie einen Iterator in eine Zeile einer boost :: numeric :: ublas :: matrix <T>?

Derzeit muss ich einen Iterator bekommen und es voranbringen. Es scheint wie zu viel CPU-Arbeit/nicht-optimierten ...

boost::numeric::ublas::matrix<T> aMatrix(2048, 4096); 
typename boost::numeric::ublas::unbounded_array<T>::iterator it; 
it = aMatrix.data().begin(); 
offset = row * aMatrix.size2(); 
advance(it, offset); 
+0

Fordern Sie Iteratoren und verwenden Sie die Array-ähnliche Operationen? – Mikhail

Antwort

4

Eureka! Matrix proxies ...

boost::numeric::ublas::matrix_row<boost::numeric::ublas::matrix<T> > aRow(aMatrix, row); 
Verwandte Themen