ile bir animasyon için Julia'da bir yineleyici uygulama Matblotlib'deki bir animasyonun bu basit example yeniden üretilmesine, ancak Julia'da PyPlot'u kullanmaya çalışıyorum. funcAnimation
işlevine iletilen yineleyici simData()
tanımında zorluklar yaşıyorum, çünkü PyPlot Julia'da tanımladığım yineleyiciyi (Task aracılığıyla) böyle algılamıyor gibi görünüyor. Örnek piton simData()
jeneratör ile aynı değerleri (örneğin collect(simData())
için denemekPyPlot
function simData()
t_max = 10.0
dt = 0.05
x = 0.0
t = 0.0
function it()
while t < t_max
x = sin(pi*t)
t = t+dt
produce(x,t)
end
end
Task(it)
end
kontrol edebilirsiniz gibi, teoride yineleyici verim bu tür: Burada
aynı işlevisimData()
tanımlamak benim yaklaşımdır Ben de belirtildiği gibi
LoadError: PyError (:PyObject_Call) <type 'exceptions.TypeError'>
TypeError('PyCall.jlwrap object is not an iterator',)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/animation.py", line 1067, in __init__
TimedAnimation.__init__(self, fig, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/animation.py", line 913, in __init__
*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/matplotlib/animation.py", line 591, in __init__
self._init_draw()
File "/usr/local/lib/python2.7/dist-packages/matplotlib/animation.py", line 1092, in _init_draw
self._draw_frame(next(self.new_frame_seq()))
while loading In[5], in expression starting on line 42
in pyerr_check at /home/diegotap/.julia/v0.4/PyCall/src/exception.jl:56
[inlined code] from /home/diegotap/.julia/v0.4/PyCall/src/exception.jl:81
in pycall at /home/diegotap/.julia/v0.4/PyCall/src/PyCall.jl:402
in call at /home/diegotap/.julia/v0.4/PyCall/src/PyCall.jl:429
, ben sorun Julia yineleyici Python tarafından da böyle tanınmaz olduğunu düşünüyorum animasyonu yapmaya çalıştıklarında. Ancak, bu hata var. Eğer bir fikrin ab var mı Bunu düzeltmek için nasıl?
PS: Here, Jupyter dizüstü bilgisayarında, bu animasyonu yapmak için kullandığım kodun tamamı yer alıyor. Kodunuzda