点积作为犰狳的乘法

Dot product as multiplication in armadillo

我有一个行向量和一个列向量,我想取它们的点积。

rowvec v = {1,2,3,4};
vec w = {5,6,7,8};
double a = dot(v,w) // works
double b = v*w // doesn't work
double c = (v*w)(0) // doesn't work
double d = static_cast<vec>(v*w)(0) //works

有没有可能得到看起来像 b 的东西?我想要它的可读性。

您也可以使用

double b = as_scalar(v*w); 

但这并不是你真正想要的...... 不要认为除了对 v、w 和 b 使用 mat 格式外,还有其他可用的替代方法。然后你会得到 v*w 的 [1x1] 矩阵和 w*v

的 [4x4] 矩阵