我有一个 m 维向量的数组列表(存储为简单数组)v1, v2 ... vn.
我必须重复计算从这些向量中选择的两个向量之间的内积。
一种方法是在其所有组件上进行简单的 for 循环。
double sum=0;
for(int i=0; i<m; i++)
sum+=v1[i]*v2[i];
这几乎是我打算对我的数据执行的唯一线性代数运算。
导入 JAMA 或 la4j 之类的 linalg 库,将所有内容存储为矩阵并计算内积会更有效吗?(这些甚至不是大矩阵乘法,只是一维向量之间的内积)
la4j(etc) 如何实现点积?它不会也遍历每个索引并乘以每对组件吗?