C++ 获取特征向量的标准偏差

C++ 获取特征向量的标准偏差,c++,eigenvector,C++,Eigenvector,我需要在库中得到向量的标准偏差。我没有找到它。所以我试了一下: 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()) 所以它是特征::矩阵的一种特殊形式。您正试图从向量ys中减去标量ys.mean

我需要在库中得到向量的标准偏差。我没有找到它。所以我试了一下:

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())
所以它是
特征::矩阵的一种特殊形式。您正试图从向量
ys
中减去标量
ys.mean()
,这是一种系数操作本征::矩阵
类不用于系数运算,而是用于线性代数。用于执行系数运算的本征具有

因此,将
特征::矩阵
ys
转换为
特征::数组
就足够了,公式才能工作:

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