如何在两个向量之间生成一个随机向量?



假设我有两个实值向量:

vec1 = np.array([a, b, c])
vec2 = np.array([x, y, z])

在两个向量之间的直线上生成随机向量的好方法是什么?所以这个随机向量的元素分别是从a到x, b到y, c到z。这是我到目前为止得到的,但我想知道是否有更好的方法。

vec3 = np.array([np.random.uniform(vec1[i], vec2[i]) for i in range(len(vec1))])

编辑:我意识到(多亏了下面的答案),这个解决方案只找到一个向量,它位于两个向量在对角生成的框中,而不是在两个向量之间的直线上找到一个向量。

import random
vec3 = vec1 + random.uniform(0, 1) * (vec2 - vec1)

最新更新