我可以以某种方式优化这个公式吗?我多次评估它需要很长时间......
w
- 1xN double
phis
- NxN double
x
- Nx2 double
sum(w(ones([size(x,1)1]),:)。* phis,2)
答案 0 :(得分:5)
您将phis
的每一行的标量积与w
一起使用。您可以使用线性代数轻松完成此操作。
out = phis * w';
此matrix multiplication可以保存您对sum
,ones
和size
的来电,这可以使您的代码更快。此外,线性代数操作在Matlab中通常非常快,因为这是历史上优化的程序。