gpt4 book ai didi

c++ - 如何在 ublas::matrix 中查找所有出现的项目

转载 作者:行者123 更新时间:2023-11-28 08:19:22 25 4
gpt4 key购买 nike

我目前正在研究一种算法,该算法需要找到矩阵中某项的所有相同出现次数。我决定使用来自 boost 的 uBLAS 矩阵。所以我的问题是:

我有一个 ublas::matrix 看起来像:

1 2 3 4 5
2 4 6 8 1
1 5 4 6 8
9 4 6 7 0

我想找到所有位置 (x,y),即值 6。有功能吗?

最佳答案

没有特定于 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++ - 如何在 ublas::matrix 中查找所有出现的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6516958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com