c++ - C++ 相当于 Python 的 scipy.sparse.rand
问题描述
scipy.sparse.rand
我需要 Python函数的 C++ 等效项( https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.rand.html)。我将输入m, n, density
参数,rand()
函数将为我生成一个矩阵(最好是 COO 矩阵)。我该怎么做?
解决方案
如果boost
您手头有的话,使用boost-ublas和boost-random的组合来完成这项工作可能是个好主意。为此,您必须事先安装boost库。
如果您事先知道非零元素的数量,您可以优化代码。
您可以在以下位置观看代码工作: https ://coliru.stacked-crooked.com/a/097ea92bb336c774
#include <boost/numeric/ublas/matrix_sparse.hpp>
#include <boost/numeric/ublas/io.hpp>
#include <boost/random/mersenne_twister.hpp>
#include <boost/random/uniform_01.hpp>
int main() {
int rows{ 4 };
int cols{ 4 };
double density{ 0.25 };
boost::random::uniform_01<> dist;
boost::random::mt19937 gen;
boost::numeric::ublas::mapped_matrix<double> m(rows, cols, 3 * 3);
for (unsigned i = 0; i < m.size1(); ++i)
for (unsigned j = 0; j < m.size2(); ++j)
if (dist(gen)>density) m(i, j) = dist(gen);
std::cout << m << std::endl;
}
推荐阅读
- machine-learning - 无法从“sklearn.ensemble”导入名称“StackingClassifier”
- ios - Xamarin.Ios 未部署到 iphone-simulator
- angular - 使用角度材料表进行多文本搜索
- jmeter - Jmeter响应时间混乱,在负载测试中我需要考虑什么时间作为响应时间
- twitter-bootstrap - Bootstrap Modal 向具有“is-fixed”类的元素添加填充权
- export-to-excel - Jaspersoft Studio 6.2.1 - 可以更改导出报告的格式吗?
- maven - 如何从 java 项目中调用 maven 项目
- android - Activity 泄露了在创建 AlertDialog 时注册的 IntentReceiver AutoNightModeManager
- python - 如何在一个内部获取谷歌地图的纬度