У меня есть эта строка кода в программе MATLAB:
x(:,i) = gamrnd(a(i),1,dim,1)
Мне было интересно, как я могу написать эту же строку на Python. Я думаю, что эквивалентное утверждение:
gamma.rvs(a, size=1000)
Однако это продолжает давать мне ошибку индекса.
Вот мой полный код для этой части:
x = np.array([])
for i in range(N-1):
# generates dim random variables
x[:, i] = gamma.rvs(a[i], dim-1) # generates dim random variables
# with gamma distribution
Спасибо за помощь!
Проблема в x[:, i]. Такого индекса не существует.






Вы инициализировали x = np.array([]), а затем попытались получить доступ к x[:, 0], которого не существует, отсюда и Index Error. Вместо этого вы захотите добавить:
x = np.array([])
for i in range(N-1):
np.append(x, gamma.rvs(a[i], dim - 1))
Документацию для np.append можно найти здесь.
np.append крайне неэффективен. Кроме того, это даст плоский массив, а не форму, которую ищет вопрошающий.
Пожалуйста, опубликуйте фактическую ошибку, которую вы видите, и время ее возникновения.
gamma.rvs(a, size=1000)должен просто работай.