Как создать сетку с нецелым размером шага элементов списка? - PullRequest
1 голос
/ 10 марта 2019

У меня есть 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]

?

...