2012-03-25 7 views
3

私は行列の乗算に取り組んでいます。ブースト行列の1行でイテレータを使用したいのですか?これはできますか?どのようにしてboost :: numeric :: ubas :: matrix <T>の行にイテレータを取得しますか?

現在、イテレータを取得して前進させる必要があります。あまりにも多くのCPU作業/最適化されていないようです...

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

イテレータをフォローして、操作のような配列を使用しますか? – Mikhail

答えて

4

ユーリカ! Matrix proxies ...

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