Eigen no matching function for call .dot()?
Eigen no matching function for call .dot()?
在我的代码中,我定义了一个模板类,其operator()
定义如下:
template<class Integrator, int ORDER>
inline double operator() (FiniteElement<Integrator, ORDER,2,3>& currentfe_,
int i, int j, int iq, int ic = 0)
{
Real s = 0;
Eigen::Matrix<double,2,1> grad_phi_i;
Eigen::Matrix<double,2,1> grad_phi_j;
grad_phi_i(0) = ...
grad_phi_i(1) = ...
grad_phi_j(0) = ...
grad_phi_j(1) = ...
s = grad_phi_i.dot(currentfe_.metric().dot(grad_phi_j));
return s;
}
哪里
currentfe_.metric()
是类FiniteElement
返回Eigen::Matrix<double,2,2>
的方法。
我得到的错误是:
error: no matching function for call to ‘Eigen::Matrix<double, 2, 1>::dot(Eigen::internal::scalar_product_traits<double, double>::ReturnType)’
s = grad_phi_i.dot(currentfe_.metric().dot(grad_phi_j));
我也想不通为什么。
这是因为矩阵.dot()
方法仅适用于向量之间的标量积(请参阅文档)。在这里你可以看到矩阵和向量之间的乘法是用*
执行的。
一个可能的解决方案是:
grad_phi_i*currentfe_.metric()*grad_phi_j.transpose()
相关文章:
- "error: no matching function for call to"构造函数错误
- 调用专用模板时出错"no matching function for call to [...]"
- "no matching function for call to 'Vector::Vector'"错误
- 我在 ifstream input_file(文件名)行中收到错误"no matching function to call";
- 模板规范获取'Ambiguous call to overloaded function'
- 从 TVector2 类派生复杂类:"No matching function for call to Complex::Complex()"
- Incomings Call with Android Sip stack in Embarcadero C++ bui
- 学习 c++,编译错误"no matching function for call"
- 结构错误:"no matching function for call to "
- 创建函数变体向量时"No matching function for call"错误
- C++线程"Call to non-static member function without an object argument"
- 编译时二叉搜索树错误的反向迭代器表示"no matching function call for operator=()"
- 如果子类中没有构造函数方法,则错误"no matching function for call to 'LGame::LGame(String&)'"
- 提升多精度浮点数128:标准::exp错误:'no matching function for call'
- "error: no matching function for call to",我无法更改结构的定义
- 如何修复以下错误"no match for call to '(std::tr1::shared_ptr<_iobuf*>) (FILE*&)'"
- 替换派生对象向量中的对象"no matching function to call"
- ROS CPP 相当于 Python subprocess.call() 和 shell=True
- (C++)构造函数、默认参数"call of overloaded... ambigous"
- Eigen no matching function for call .dot()?