>> clear all
clc
n=200;
plight=0.000005;
pgrowth=0.01;
ul=[n,1:n-1];
dr=[2:n,1];
veg=zeros(n);
imh=image(cat(3,veg,veg,veg));
for i=1:3000
sum=(veg(ul,:)==1)+(veg(:,ul)==1)+(veg(:,dr)==1)+(veg(dr,:)==1);
veg=2*(veg==2)-((veg==2)&(sum>0|(rand(n,n)<plight)))+2*((veg==0)&rand(n,n)<pgrowth);
set(imh,'cdata',cat(3,(veg==1),(veg==2),zeros(n)))
pause(0.05)
drawnow %更新事件队列强迫matlab刷新屏幕
end
MATLAB 森林火灾代码 求帮忙注释(尽量每行都有),尽量详细。本人新手
答案:1 悬赏:50 手机版
解决时间 2021-03-10 10:25
- 提问者网友:椧運幽默
- 2021-03-09 10:08
最佳答案
- 五星知识达人网友:底特律间谍
- 2021-03-09 10:41
n = 300; 定义表示森林的矩阵大小
Plight = .000005; Pgrowth = .01; 定义闪电和生长的概率
UL = [n 1:n-1]; DR = [2:n 1]; 定义上左, 下右邻居
veg=zeros(n,n); 初始化表示森林的矩阵
imh = image(cat(3,veg,veg,veg)); 可示化表示森林的矩阵
% veg = empty=0 burning=1 green=2
for i=1:3000 主循环开始
sum = (veg(UL,:)==1) + ...
(veg(:,UL)==1) + (veg(:,DR)==1) + ...
(veg(DR,:)==1); 求上下左右四个邻居和
根据规则更新森林矩阵: 树= 树- 着火的树+ 新生的树
veg = 2*(veg==2) - ( (veg==2) & (sum>0|(rand(n,n)<Plight)) ) + ...
2*((veg==0) & rand(n,n)<Pgrowth) ;
set(imh, 'cdata', cat(3,(veg==1),(veg==2),zeros(n)) )
drawnow 刷新
end 主循环结束
Plight = .000005; Pgrowth = .01; 定义闪电和生长的概率
UL = [n 1:n-1]; DR = [2:n 1]; 定义上左, 下右邻居
veg=zeros(n,n); 初始化表示森林的矩阵
imh = image(cat(3,veg,veg,veg)); 可示化表示森林的矩阵
% veg = empty=0 burning=1 green=2
for i=1:3000 主循环开始
sum = (veg(UL,:)==1) + ...
(veg(:,UL)==1) + (veg(:,DR)==1) + ...
(veg(DR,:)==1); 求上下左右四个邻居和
根据规则更新森林矩阵: 树= 树- 着火的树+ 新生的树
veg = 2*(veg==2) - ( (veg==2) & (sum>0|(rand(n,n)<Plight)) ) + ...
2*((veg==0) & rand(n,n)<Pgrowth) ;
set(imh, 'cdata', cat(3,(veg==1),(veg==2),zeros(n)) )
drawnow 刷新
end 主循环结束
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯