【发布时间】:2020-10-17 16:00:23
【问题描述】:
我这里有这个函数,旨在在给定的 x 和 y 范围内创建均匀的粒子,这些范围将是 1x2 矩阵。但是,当我尝试运行它时,出现以下错误。我觉得有一种更巧妙的方法可以将 x 和 y 值分配到我的粒子矩阵中。我该如何解决这个问题?
def create_uniform_particles(x_range, y_range, N):
particles = np.empty((N, 2))
new_x = uniform(x_range[0], x_range[1], size=(N,1))
new_y = uniform(y_range[0], y_range[1], size=(N,1))
for i in range(N):
particles[i][0] = new_x[i]
particles[i][1] = new_y[i]
return particles
#错误:
Traceback (most recent call last):
File "/Users/scottdayton/PycharmProjects/Uncertainty Research/particle.py", line 83, in <module>
particle_filter(init, sigma, obs, n, trans, sigma0)
File "/Users/scottdayton/PycharmProjects/Uncertainty Research/particle.py", line 49, in particle_filter
particles = create_uniform_particles(new_x_range, new_y_range, n)
File "/Users/scottdayton/PycharmProjects/Uncertainty Research/particle.py", line 8, in create_uniform_particles
new_x = uniform(x_range[0], x_range[1], size=(N,1))
IndexError: too many indices for array
【问题讨论】:
-
x_range到底是什么? “IndexError:数组索引过多”不是numpy数组索引错误。也不是列表或元组。 -
这是完整的
IndexError吗?是不是有这样一行:“数组是 0 维的,但是 1 被索引了”?我的猜测是x_range是一个“标量”数组,例如np.array(0).
标签: python numpy index-error uniform-distribution particle-filter