Eigen::RowVector 迭代器
Posted
技术标签:
【中文标题】Eigen::RowVector 迭代器【英文标题】:Eigen::RowVector Iterator 【发布时间】:2013-05-29 22:28:48 【问题描述】:有人能告诉我到底如何迭代 Eigen::RowVectorXf 吗?
我通过网络和文档查找了 3 个小时,我只能找到from this link,我可以通过以下方式访问它:
vector(i)
vector[i]
我有一个:
auto vec = std::make_shared<Eigen::RowVectorXf>( rowIndex.size() );
我想用词频填充。
Eigen::RowVectorXf::InnerIterator it(vec); it; ++it
没有用,而且
Eigen::RowVectorXf::Iterator it(vec); it; ++it
不存在。
似乎唯一可行的是:
for ( int i = 0; i < vec->row( 0 ).size(); i++ )
std::cout << vec->row( 0 )[i] << std::endl;
恕我直言,这似乎很奇怪,因为我不应该明确指向 row(0),因为这是一个 RowVector。
难道没有更干净、更快或更优雅的方式吗?
【问题讨论】:
可能有帮助的一点是,在本征中没有“向量”之类的东西。特征向量是矩阵的类型定义;我引用:“Vector4f 是 4 个浮点数的向量 (Matrix不需要 row(0),您可以使用 ->coeff(i)(不推荐,因为它会跳过断言,即使在调试模式下也是如此),或者使用 operator* 取消引用您的 shared_pointer
:
for(int i=0; i<vec->size(); ++i)
cout << (*vec)[i];
您也可以使用 InnerIterator,但您必须取消引用您的 shared_pointer
:
RowVectorXf::InnerIterator it(*vec); it; ++it
【讨论】:
以上是关于Eigen::RowVector 迭代器的主要内容,如果未能解决你的问题,请参考以下文章