【发布时间】:2021-06-21 11:16:46
【问题描述】:
我有以下矩阵:Q、P、q 和 y,形状分别为 (100,100)、(100,100)、(100,100) 和 (100,2)。
这是我迄今为止尝试过的方法,它似乎有效,但我知道这是不好的做法 并且非常缓慢。
grad = np.zeros(100, 2)
for i in range(100):
tmp = 0
for j in range(100):
tmp += ((P[i, j] - Q[i, j]) * q[i, j] * (y[i, :] - y[j, :]))
grad[i, :] = tmp * 4
我的问题是如何使用矩阵运算而不是嵌套循环来计算它?
【问题讨论】:
-
图中的方程不是双求和,而是j上的单求和。然后结果将 i 作为变量。那么你想要一个双倍和的答案,还是图像中的方程的答案?
-
@tom10 你是对的,我没有正确提出我的问题。对于每个我想计算总和,所以它不应该是双重总和,而是迭代内的总和。更新了问题。
标签: python numpy matrix optimization