使用Eigen库实现矩阵按行和按列的平均值可以使用rowwise()和colwise()函数实现,具体代码如下:文章来源:https://www.toymoban.com/news/detail-433387.html
#include <iostream>
#include <Eigen/Dense>
int main()
{
Eigen::Matrix<float, 3, 4> mat;
mat << 1, 2, 3, 4,
5, 6, 7, 8,
9, 10, 11, 12;
// 按行求平均值
Eigen::VectorXf row_mean = mat.rowwise().mean();
std::cout << "按行求平均值:\n"
<< row_mean.transpose() << std::endl;
// 求解每一行的平均值
std::cout << mat.row(0).mean() << " ";
std::cout << mat.row(1).mean() << " ";
std::cout << mat.row(2).mean() << std::endl;
// 按列求平均值
Eigen::VectorXf col_mean = mat.colwise().mean();
std::cout << "按列求平均值:\n"
<< col_mean.transpose() << std::endl;
// 求解每一列的平均值
std::cout << mat.col(0).mean() << " ";
std::cout << mat.col(1).mean() << " ";
std::cout << mat.col(2).mean() << " ";
std::cout << mat.col(3).mean() << std::endl;
return 0;
}
按行求平均值:
2.5 6.5 10.5
2.5 6.5 10.5
按列求平均值:
5 6 7 8
5 6 7 8
要求标准差的话,把mean改成std即可。文章来源地址https://www.toymoban.com/news/detail-433387.html
到了这里,关于Eigen 按行和按列计算矩阵的均值和标准差的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!