我有一个 D 维点和向量,分别是 p 和 v,一个正数 n 和一个分辨率。
我想在连续将向量 v*resolution 添加到点 pn/分辨率时间后获得所有点。
例子
p = np.array([3, 5])
v = np.array([-1.5, 3])
n = 10
resolution = 1.5
result:
[[ 3. , 5. ],
[ 0.75, 9.5 ],
[ -1.5 , 14. ],
[ -3.75, 18.5 ],
[ -6. , 23. ],
[ -8.25, 27.5 ],
[-10.5 , 32. ]]
我目前的方法是平铺由n和分辨率给出的范围,由维度D,乘以v并添加p。
def getPoints(p, v, n, resolution=1.):
dRange = np.tile(np.arange(0, n, resolution), (v.shape[0],1))
return np.multiply(v.reshape(-1,1), dRange).T + p
是否有使用 np.einsum 或其他方法计算 DRange 的直接方法?