“a2 = a1-a1.mean();”中出了什么问题获得中心数据?

时间:2015-02-15 05:14:13

标签: matrix variance eigen3

我使用 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 正在给出错误,因为与运营商不匹配 - ... 这里有什么错误?

1 个答案:

答案 0 :(得分:2)

我纯粹是从文档中回答,所以我可能错了,但是。

Eigen不允许Matrix - scalar,但允许Array - scalar

尝试。

a2 = a1.array() - a1.mean();

或者

a2.array() = a1.array() - a1.mean();

即使这些都不起作用,希望他们指出你正确的方向。