(Python) TypeError: только целочисленные скалярные массивы могут быть преобразованы в скалярный индекс - PullRequest
0 голосов
/ 11 января 2019

Когда я компилирую следующую программу, Python генерирует ошибку TypeError: только скалярные массивы могут быть преобразованы в скалярный индекс.

Это выглядит как относительно простое выполнение программы, но я не могу ее решить.

Частота

import matplotlib.pyplot as plt
import numpy as np

def period(n):
    #masses
    m = [1] * n
    #lengths
    l = [2] * n
    M = sum(m)
    num = 2 * math.pi * n

for i in range(n):
    dem = dem + math.sqrt(g * m[i]/(l[i] * M)) 
return num/dem   

x = np.arange(1, 10,1)
y = period(x)
plt.plot(x,y)
plt.show()

Пусть M == sum from j==1 to n of the masses m_j. Я ожидаю, что программа просто отобразит график period, где period(n) просто определяется суммой от 1 до n из sqrt(g * m_j/(l_j * M)).

1 Ответ

0 голосов
/ 11 января 2019

Используйте понимание списка, чтобы применить функцию period к каждой записи в массиве x, например: -

y = np.array([period(i) for i in x])

Также вам нужно инициализировать dem и g -

dem = 0.0
g = 9.8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...