Eigen 3.4 .reshaped()

Eigen 3.4 .reshaped()

本文关键字:reshaped Eigen      更新时间:2023-10-16

我想将特征向量重塑为矩阵,然后采用.colwise((.sum((。

特征教程中介绍的 reshape 命令未编译 (https://eigen.tuxfamily.org/dox-devel/group__TutorialReshape.html(

因此,我的问题既是关于特征版本编号(特征3.4已经发布吗?(也是关于reshape命令本身(我的编译错误说"Eigen::VectorXd没有名为'reshaped'的成员"(以及关于以下有效替代方案的建议:

VectorXd phi = X * beta; ArrayXd sumPhi = phi.reshaped(4,12).colwise().sum();

Eigen 3.4 尚未发布(截至 2019 年 5 月(,我建议尝试开发分支。

由于phi是一个实际的对象(而不是表达式(,您可以使用Map来实现相同的目的:

ArrayXd sumPhi = MatrixXd::Map(phi.data(),4,12).colwise().sum();

这应该适用于任何版本的 Eigen(至少从 3.0 开始(,但安全性较低,因为它不能确保元素的数量实际匹配(如果phi元素少于 4*12,这可能会访问无效内存(。