我需要计算vector3f的log10。我尝试了:
Eigen::Vector3f valsingn = svd.singularValues()/svd.singularValues()(0);
valsingn = valsingn.log10();
但是它不起作用。
main.cpp:145:27: error: ‘Eigen::Vector3f {aka class Eigen::Matrix<float, 3, 1>}’ has no member named ‘log10’; did you mean ‘log’?
valsingn = valsingn.log10();
有没有办法用此向量计算log10
?
谢谢!
允许特征仍然使用simd的简单方法(我认为已启用它(将是简单的基础更改:
valsingn = valsingn.array().log() / log(10.0);
另外,您可以将log10
作为一般表达式传递:
valsingn.unaryExpr(&log10); // You may have to wrap
// log10 in a function of
// your own depending on
// the log10 overloads
您需要转到纯系数功能的数组世界:
Vector3f v, w;
w = v.array().log10();
w = log10(v.array());
Arrayt3f a, b;
b = a.log10();
b = log10(a);