Meine globalen Variablen funktionieren nicht in meinem Code. Ich bin neu und das scheint mir nicht klar zu sein: Ich habe Variablen gesetzt (nur mit gna), die durch ein Eingabefeld, ausgelöst durch eine entsprechende Schaltfläche, manipuliert werden können. Aus irgendeinem Grund nimmt es nicht die Änderungen innerhalb der Schleife. Ich versuche, es zu machen, wo die geänderte Variable kann auch grafisch dargestellt werden, aber es gibt mir die folgende Fehlermeldung:Globale Variablen funktionieren nicht
Exception in Tkinter callback Traceback (most recent call last):
File "C:\Program Files\Python35\lib\tkinter\__init__.py", line 1549, in __call__
return self.func(*args) File "G:/PYTHON/Eulers.py", line 64, in graph
v[i + 1] = 1/c * (gna * f[i] - gk * u[i]) * del_t + v[i]
TypeError: ufunc 'multiply' did not contain a loop with signature matching types dtype('< U32') dtype('< U32') dtype('< U32')
Hier ist der Code:
gna = 0.9
gnalabel = Label(topFrame, text="gna = %s" % gna)
gnalabel.pack()
gnaEntry = Entry(topFrame, justify=CENTER)
gnaEntry.pack()
def gnacallback():
global gna
gna = gnaEntry.get()
gnalabel.config(text="C = %s" % gna)
gnaButton = Button(topFrame, text="Change", width=10, command=gnacallback)
gnaButton.pack()
def graph():
global c, gna, gk, beta, gamma
for i in range(0, len(t)-1):
stinum = np.floor(i/3000)
stimt = 3000 + 3000 * (stinum - 1)
f[i] = v[i] * (1 - (((v[i]) ** 2)/3))
v[i + 1] = 1/c * (gna * f[i] - gk * u[i]) * del_t + v[i]
if(i == stimt):
v[i + 1] = v[i + 1] + v_stim
u[i + 1] = (v[i] + beta - gamma * u[i]) * del_t + u[i]
plt.plot(v)
plt.show()
Ihr Code ist nicht sehr pythonic - Sie verwenden unnötige '()' –
Globale Variablen sind eher ein letzter Ausweg Art der Sache –
@ uoɥʇʎPʎzɐɹC Ich sehe keine. Das ist die geringste ihrer Sorgen, obwohl –