我正在写一个代码,目的是模拟表面蒸发时的结构变化。我目前已经在python中生成了一个100x100的1矩阵中的随机点,然后从这些点中增长出0来表示两个不同的表面结构。我现在需要在函数中添加一个步骤,当它增长超过某个区域时,具有任意概率的0区域转换回1。我尝试了以下方法,但这只是在零区域内添加随机数,而不是更改整个区域
for t in range(10):
for i in range(A):
for j in range(A):
if S[i,j] == 0:
for m in range(-(v*t), (v*t)+1):
for n in range(-(v*t), (v*t)+1):
if i+m>0 and i+m<A and j+n>0 and j+n<A:
if S[i+m, j+n]==1 and np.sqrt(m**2 + n**2)<=(v*t):
S_NEW[i+m, j+n] = 0
if np.sqrt(m**2 + n**2) >= 6:
R_new = random.random()
if R_new > 0.6: #arbitrary prob
S_NEW[i+m, j+n] = 1
这段代码是从矩阵(i
和j
)中的某些坐标开始的初始径向增长,这是我试图将零区域还原为1的最后4行
我不确定这是否对你有帮助,但请告诉我-
相关问题 更多 >
编程相关推荐