请选择 进入手机版 | 继续访问电脑版

QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1011|回复: 0

求大神指导,关于元胞自动机的问题

[复制链接]

8

主题

7

听众

227

积分

自我介绍
heh

群组2014年美赛冲刺培训

群组Matlab讨论组

发表于 2014-2-3 15:55 |显示全部楼层
5、Forest Fire
%CA driver
%
%forest fire
clf
clear all
n=100;
Plightning = .000005;
Pgrowth = .01; %.01
z=zeros(n,n);
o=ones(n,n);
veg=z;
sum=z;
imh = image(cat(3,z,veg*.02,z));
set(imh, 'erasemode', 'none')
axis equal
axis tight
% burning -> empty
% green -> burning if one neigbor burning or with prob=f (lightning)
% empty -> green with prob=p (growth)
% veg = {empty=0 burning=1 green=2}
for i=1:3000
%nearby fires?
sum = (veg(1:n,[n 1:n-1])==1) + (veg(1:n,[2:n 1])==1) + ...
(veg([n 1:n-1], 1:n)==1) + (veg([2:n 1],1:n)==1) ;
veg = ...
2*(veg==2) - ((veg==2) & (sum>0 | (rand(n,n)<Plightning))) + ...
2*((veg==0) & rand(n,n)<Pgrowth) ;
set(imh, 'cdata', cat(3,(veg==1),(veg==2),z) )
drawnow
end
请问,在这个森林火灾元胞程序中,o=ones(n,n)有什么用?并且,对于veg==1,即一个燃烧着的元胞(状态为 1 )在下一时时刻变成空位的(状态为0 )这个规则,好像程序没有说明?最后,set(imh, 'cdata', cat(3,(veg==1),(veg==2),z) )这个意思讲解一下就最好不过了,即为什么要用关联函数cat表示?

qq
收缩
  • 电话咨询

  • 04714969085

关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

手机版|Archiver| |繁體中文 手机客户端  

蒙公网安备 15010502000194号

Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

GMT+8, 2024-3-29 20:10 , Processed in 0.375318 second(s), 41 queries .

回顶部