Код: Выделить всё
MatrixXf ComputeRollingMean(const MatrixXf& features) {
MatrixXf df(features.rows() - 30, features.cols());
for (size_t i = 30; i < features.rows(); ++i) {
MatrixXf mat = features.block(i-30, 0, 30, 3);
RowVectorXf mean_vector = mat.colwise().mean();
RowVectorXf stdev_vector = ((mat.rowwise() - mean_vector).colwise().squaredNorm() / (mat.rows()-1)).cwiseSqrt();
MatrixXf zscores = (mat.rowwise() - mean_vector).array().rowwise() / stdev_vector.array();
RowVectorXf zscore = zscores(last, all);
df.block(index, 0, 1, 3) = zscore;
}
return df;
}
Код: Выделить всё
#include
Код: Выделить всё
int main() {
Eigen::initParallel();
...}
Подробнее здесь: https://stackoverflow.com/questions/782 ... atrix-in-c