永发信息网

MATLAB 森林火灾代码 求帮忙注释(尽量每行都有),尽量详细。本人新手

答案:1  悬赏:50  手机版
解决时间 2021-03-10 10:25
>> 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
最佳答案
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 主循环结束
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
襄阳彩礼多少钱
(1)若|x|=-x,则x的取值范围是()。 (2)
阮郑村地址在哪,我要去那里办事
“死一般的寂静”是正确的吗?有没有语病
有谁知道?投标函上项目建技术建议书怎么写?
被3M互助平台骗了,求助。
蛇年男孩中间带彦的名字
宜安装饰地址有知道的么?有点事想过去
2008款宝马1系怎么样
僵小鱼的寓意
银行户名是意思?
豪品休闲按摩中心地址在什么地方,想过去办事
VB中的chr(0)
杭州东站到华丰经济科技园坐地铁和公交车怎么
胖怎么了,又不吃你家的饭,最讨厌别人说我胖
推荐资讯
酷铺宣坤安店地址在什么地方,想过去办事
染发剂里的白色药水有什么用?单独用会不会使
【优西雨】优西雨是什么
菜溪客运站我想知道这个在什么地方
在下列数据后填写合适的单位:小明的身高160_
品安煲新影店我想知道这个在什么地方
奢华尚品在什么地方啊,我要过去处理事情
下列属于特异性免疫的是A.呼吸道黏膜清扫异物
林字加个大字是什么字
庭院宜种什么树
哪一部《星球大战》电影最为经典
怎么进自己苹果手机云看图片
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?