"a2 = a1-a1.mean();" 获取居中数据有什么问题?
What is wrong in "a2 = a1-a1.mean();" to get centered data?
我正在使用 Eigen 3.2.4 来获取列向量中的中心数据。
Eigen::Matrix<double, 4, 1> a1, a2;
a1 << 1, 2, 3, 4;
a2 = a1 - a1.mean(); // error no match for operator -
但是 gcc 给出了错误,因为 no match for operator -...
这里的错误是什么?
我纯粹是根据文档回答的,所以我可能错了但是。
Eigen 不允许 Matrix - scalar
,但允许 Array - scalar
试试吧。
a2 = a1.array() - a1.mean();
或者
a2.array() = a1.array() - a1.mean();
即使这些都不起作用,希望它们能为您指明正确的方向。
我正在使用 Eigen 3.2.4 来获取列向量中的中心数据。
Eigen::Matrix<double, 4, 1> a1, a2;
a1 << 1, 2, 3, 4;
a2 = a1 - a1.mean(); // error no match for operator -
但是 gcc 给出了错误,因为 no match for operator -... 这里的错误是什么?
我纯粹是根据文档回答的,所以我可能错了但是。
Eigen 不允许 Matrix - scalar
,但允许 Array - scalar
试试吧。
a2 = a1.array() - a1.mean();
或者
a2.array() = a1.array() - a1.mean();
即使这些都不起作用,希望它们能为您指明正确的方向。