小编BeM*_*SeD的帖子

在 Haskell 中由常量参数化的数据类型

我想在 Haskell 中定义一个数据类型,它由一个Int常量沿线参数化:

data Q (n :: Int) = Q n (Int,Int) -- non-working code

为了让我定义类型的函数:

addQ :: (Q n)->(Q n)->(Q n)
addQ (Q k (i1,j1)) (Q k (i2,j2))) = Q k (i1+i2,j1+j2)
Run Code Online (Sandbox Code Playgroud)

这个想法是,通过这种方式,我能够限制Q具有相同的添加n。直觉上,感觉这应该是可能的,但到目前为止,我所有的(公认的新手)尝试都停留在 GHC 的严格性上。

haskell types dependent-type data-kinds parameterized-types

8
推荐指数
1
解决办法
142
查看次数

Matplotlib FuncAnimation 慢

我使用 matplotlib 的 FuncAnimation 创建了一个表面绑定过程的简单动画。然而,结果非常缓慢。我怀疑这是因为我在每一帧都重绘了所有元素,但我还没有想出解决方法。任何帮助表示赞赏。

import matplotlib
matplotlib.use('TKAgg')      # import proper graphics back-end for Mac OS X


import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
from matplotlib.collections import PatchCollection
from random import *

nx = 20     # x size of lattice
ny = 20     # y size of lattice

pAds = 0.01     # adsorption probability per time step
pDes = 0.0075   # desorption probability per time step

tMax = 500     # number of time …
Run Code Online (Sandbox Code Playgroud)

python animation matplotlib

5
推荐指数
1
解决办法
2382
查看次数

在python/matplotlib中设置补丁对象的动画

我试图为一系列圆圈设置动画,以便随着时间的推移改变颜色.以下代码生成单帧的示例:

import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation

nx = 20
ny = 20

fig = plt.figure()
plt.axis([0,nx,0,ny])
ax = plt.gca()
ax.set_aspect(1)

for x in range(0,nx):
    for y in range(0,ny):
        ax.add_patch( plt.Circle((x+0.5,y+0.5),0.45,color='r') )

plt.show()
Run Code Online (Sandbox Code Playgroud)

如何定义函数init()和animate(),以便我可以使用例如:

animation.FuncAnimation(fig, animate, initfunc=init,interval=200, blit=True)
Run Code Online (Sandbox Code Playgroud)

python animation matplotlib

4
推荐指数
1
解决办法
3383
查看次数