gpt4 book ai didi

c++ - 获取 Eigen::vector 的标准偏差

转载 作者:行者123 更新时间:2023-12-04 07:44:39 24 4
gpt4 key购买 nike

我需要在 Eigen 中有一个 vector 的标准偏差图书馆。我还没有找到。所以我试了一下:

Eigen::VectorXd ys(5);
ys << 1, 2, 3, 4, 5;

double std_dev = sqrt((ys - ys.mean()).square().sum() / (ys.size() - 1)); // Error with minus sign (ys-ys.mean())
但得到错误。
错误:
Severity    Code    Description Project File    Line    Suppression State
Error (active) E0349 no operator "-" matches these operands

最佳答案

Eigen::VectorXd is defined as typedef Matrix<double, Dynamic, 1> VectorXd; 所以它是 Eigen::Matrix 的特殊形式.您正在尝试减去标量 ys.mean()来自 vector ys这是一个系数操作。 Eigen::Matrix class 不打算用于系数运算,而是用于线性代数。 对于执行系数操作 Eigen 有 Eigen::Array class .
因此足以转换您的 Eigen::Matrix ysEigen::Array 为您的公式工作:

double const std_dev = sqrt((ys.array() - ys.mean()).square().sum() / (ys.size() - 1));

关于c++ - 获取 Eigen::vector 的标准偏差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67265333/

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