c – 计算矩阵向量的列和与迭代器?
发布时间:2020-12-16 03:40:17 所属栏目:百科 来源:网络整理
导读:在之前的 column vector with row means — with std::accumulate?帖子中,我询问是否可以使用STL功能来计算矩阵的行均值 vector vectordouble data ( rows,vectordouble ( columns ) ); @benjaminlindley的最佳答案不仅仅是我所寻找的,它还是一件美丽的事情.
在之前的
column vector with row means — with std::accumulate?帖子中,我询问是否可以使用STL功能来计算矩阵的行均值
vector< vector<double> > data ( rows,vector<double> ( columns ) ); @benjaminlindley的最佳答案不仅仅是我所寻找的,它还是一件美丽的事情.永远充满希望我认为计算列方法会很容易,所以STL相当于 vector<double> colmeans( data[0].size() ); for ( int i=0; i<data.size(); i++ ) for ( int j=0; j<data[i].size(); j++ ) colmeans[j] += data[i][j]/data.size(); 其中均值不是在每个向量< double>内计算的,而是在所有向量中的相同索引中计算: colmeans[0] == ( data[0][0] + data[1][0] + ... data[rows][0] ) / rows colmeans[1] == ( data[0][1] + data[1][1] + ... data[rows][1] ) / rows colmeans[2] == ( data[0][2] + data[1][2] + ... data[rows][2] ) / rows ... colmeans[columns] == ( data[0] [columns] + data[1] [columns] + ... data[rows][columns] ) / rows 事实证明它是完全不同的 – 累积不想对矢量矢量起作用.是否可以使用[]运算符累积?我甚至无法想出一个中间形式(为了摆脱i或j循环),这似乎是不对的. 有积累和[]运算符的东西?还是绑定? 解决方法
这是我想出来的东西,使用for_each和transform:
std::vector<std::vector<double>> data { {1,2,3},{1,3} }; std::vector<double> colsums( data[0].size() ); // initialize the size // to number of columns std::for_each(data.begin(),data.end(),[&](const std::vector<double>& row) { // Use transform overload that takes two input ranges. // Note that colsums is the second input range as well as the output range. // We take each element of the row and add it to the corresponding // element of colsums vector: std::transform(row.begin(),row.end(),colsums.begin(),[](double d1,double d2) { return d1 + d2; }); }); std::cout << "Column means: "; std::transform( colsums.begin(),colsums.end(),std::ostream_iterator<double>(std::cout," "),[&data](double d) { return d / data.size(); }); LWS Demo (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 从package-internal packrat库加载依赖项
- swift – 如何更改spritenode不透明度
- 如何在表PostgreSQL之间复制数据
- @XMLRootElement与@XmlType
- Weblogic.xml 文件配置 优先加载本地jar包及 jsp热部署
- Cocos2d-x游戏开发之jsoncppdemo
- AJAX组件-dwr 的部署与实现-附部署思路图
- as 3.0 如何浏览文件,实现文件上传和下载功能。
- iphone – 可以在UIBabel和/或UIImageView中使用IB中的Tap
- c# – Braintree API在Sandbox中的CreateCard.Create上抛出