我试图写一个函数,它接受一个ColXpr
值作为输入:从价值到价值没有已知的表达...为什么?
typedef Eigen::Array<float, Eigen::Dynamic, Eigen::Dynamic> Signal2D;
void Threshold(Signal2D::ColXpr& params)
{
params = (params >= 0.0f).template cast<float>();
}
当我尝试调用这个函数我做这样的事情:
Signal2D arr;
// fill it with stuff
Threshold(arr.col(0));
然后我得到这个编译器错误:
src/core/Neuron.h:91:14: note: no known conversion for argument 1 from ‘Eigen::DenseBase<Eigen::Array<float, -1, -1> >::ColXpr {aka Eigen::Block<Eigen::Array<float, -1, -1>, -1, 1, true>}’ to ‘Eigen::DenseBase<Eigen::Array<float, -1, -1> >::ColXpr& {aka Eigen::Block<Eigen::Array<float, -1, -1>, -1, 1, true>&}’
make: *** [src/training/Fibonacci.o] Error 1
没有重新发布整个系列的导致此代码,可能有人解释这意思是当编译器说no known conversion for argument from Value to Value&
?为什么它不能在这种情况下获得参考?请注意,我已经看到了相关的this
指针类似的问题我已经张贴在这里:
error: no match for 'operator<<' using boost::serialisation
难道这是GCC 4.9.0的一些特点还是我错在这里做什么?请让我知道,如果你需要看到一个独立的例子,它将需要一段时间来拼凑在一起,我认为这里可能有足够的信息来指出我的一个明显的错误。
让我猜猜 - 'arr.col()'返回一个'Signal2D'? –
@MattMcNabb否,'Eigen :: Array :: col()'返回'Eigen :: ColXpr'。我的示例代码中存在一个错误(固定),请参阅http://eigen.tuxfamily.org/dox/classEigen_1_1DenseBase.html#a58c77695de3b33405f01f2fdf3dc389d – arman
与Signal2D :: ColXpr相同吗? (我看你刚刚编辑了什么'阈值“) –