У меня есть 2 списка координат x и y, которые генерируются независимо, с a/h
количеством точек между 0
и a
.
x = np.linspace(0, a, a/h)
y = np.linspace(0, d, d/h)
, когда a/h
таково, что 0
увеличивается до a
с шагом целых чисел, т.е. [0,1,2,..,a]
.Это хорошо, потому что тогда количество элементов в списке можно использовать как индексы.И в результате я обычно могу создать сетку сетки так, чтобы с ней можно было связать третий список V1
.
X, Y = plt.meshgrid(x, y)
def potential(V1):
return V1[X, Y]
, где potential(V1)
теперь V1
, соответствующий сетке сетки [x, y]
.Однако я выполняю задание, в котором мне необходимо выяснить, как размеры шагов влияют на мою проблему.В результате, если бы у меня был размер шага нецелых чисел от 0
до a
, то есть [0, 0.5, 1,...,a]
Теперь я не могу сделать то, что делал выше, так как индексы теперь не являются целыми числами.Возникновение ошибки
IndexError: arrays used as indices must be of integer (or boolean) type
Как это исправить, чтобы не полагаться на значение самого элемента в качестве индекса элементов, чтобы при размере шага 0.25
между 0
до a
для списка X
скажем, т.е.
X = [0, 0.25, 0.75. 1.0] or x = np.linspace(0,1,4)
, так что я могу иметь
x[0] = 0 corresponds to V[0]
x[1] = 0.25 corresponds to V[1]
x[2] = 0.75 corresponds to V[2]
x[3] = 1 corresponds to V[3]
?