Вот мой фрагмент кода, чтобы сделать интегральную функцию NumPy
, SciPy
и MatPlotLib
библиотек:Распаковка ошибки в численном интегрировании в питоне
import numpy as np
from scipy.integrate import quad
import matplotlib.pyplot as plt
sigma = 1
def integrand(x,n):
return (n/(2*sigma*np.sqrt(np.pi)))*np.exp(-(n**2*x**2)/(4*sigma**2))
tt = np.linspace(0, 20, 0.01)
nn = np.linspace(1, 100, 1)
T = np.zeros_like([len(tt), len(nn)])
for i,t in enumerate(tt):
for j,n in enumerate(nn):
T[i,j] = quad(integrand, -oo, t, args = (x))
plt.pcolormesh(tt,nn,T)
Но есть ValueError
ниже о unpacking
вопросе о связанном:
Traceback (most recent call last):
File "C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Python Tools for Visual Studio\2.1\visualstudio_py_util.py", line 106, in exec_file exec_code(code, file, global_variables)
File "C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\Extensions\Microsoft\Python Tools for Visual Studio\2.1\visualstudio_py_util.py", line 82, in exec_code exec(code_obj, global_variables)
File "C:\Users\Matinking\documents\visual studio 2013\Projects\NeuroSimulation\NeuroSimulation\XSundry\test2.py", line 63, in <module>
plt.pcolormesh(tt,nn,T)
File "C:\Python34\lib\site-packages\matplotlib\pyplot.py", line 2946, in pcolormesh
ret = ax.pcolormesh(*args, **kwargs)
File "C:\Python34\lib\site-packages\matplotlib\axes.py", line 7747, in pcolormesh
X, Y, C = self._pcolorargs('pcolormesh', *args, allmatch=allmatch)
File "C:\Python34\lib\site-packages\matplotlib\axes.py", line 7357, in _pcolorargs
numRows, numCols = C.shape
ValueError: need more than 1 value to unpack
Press any key to continue . . .
вопрос, казалось бы, связанные с последней строки кода, но я can'y понять любое решение, за что ...
Не могли бы вы рассказать мне об этом случае?
С наилучшими пожеланиями
Числа varibakes петлевого с плавающей точкой. Вы используете «t» и «n», которые не являются переменной индексации. – Sandman
Вы хотите сказать что-то вроде: «для i, t в перечислении (TT)» и аналогично для вашей другой переменной. – Sandman
@ Sandman: Это могло бы быть ... Но поскольку я новый человек на этой территории, я был бы признателен, если бы вы сообщили мне о потенциальном решении ... Я имею в виду, как я должен использовать переменную 'i'? – Roboticist