如何在ublas::矩阵中查找项目的所有出现项
How to find all occurrences of an item in a ublas::matrix
我目前正在研究一种算法,该算法需要找到矩阵中某个项的所有相等出现次数。我决定使用boost中的uBLAS矩阵。所以我的问题是:
我有一个ublas::矩阵,看起来像:
1 2 3 4 5
2 4 6 8 1
1 5 4 6 8
9 4 6 7 0
并且我想要找到值6的所有位置(x。有的函数吗?
没有特定于ublas的函数(据我所知),您必须以通常的方式扫描矩阵——通过迭代器或索引访问:
typedef std::vector<std::pair<size_t, size_t> > posvec_t;
template <typename T>
posvec_t find_all(const ublas::matrix<T>& m, T val)
{
posvec_t ret;
for(size_t r=0; r<m.size1(); ++r)
for(size_t c=0; c<m.size2(); ++c)
if(m(r,c) == val)
ret.push_back( std::make_pair(r, c) );
return ret;
}
测试:https://ideone.com/qhW9b
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 无法在 CLion 中构建 C++ 项目
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 欧拉项目#8答案是大以获得有效答案
- 从链接列表c++中删除一个项目
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 既然存在危险,为什么项目要使用-I include开关
- cmake在我的项目中所需的所有静态库都不成功
- QT通过C++添加映射QML项目
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 在linux上调试巨大的C++项目
- 在其他文件中创建类时在 c++ 项目中不起作用
- 使外部项目可用于find_package CMake
- 在子目录中使用target_sources()命令时用于单元测试(qtest)的项目结构
- 使用外部SDK工具链文件在VisualStudio上生成项目编译错误
- 如何维护资源管理器项目视图中当前可见的项目列表
- 错误-我无法在VS2019中打开新的Qt项目
- 如何在ublas::矩阵中查找项目的所有出现项