【元胞自动机】基于元胞自动机实现单边教室人群疏散含Matlab源码
1 简介
基于元胞自动机模拟教室疏散代码,分析在随机教室情况下人员流动情况。
2 部分代码
function [ ] = main(~)%画出动图A=zeros(113,26);M=ceil(sqrt(113^2+26^2));A1=zeros(29,22);A1(:,[1 22])=M;A1([1 29],:)=M;A1([4 5],[10 11 12 13])=M;%给出讲台的障碍量A1(8:2:24,[4 5 6 10 11 12 13 17 18 19])=M;%给出桌子的障碍量A1(9:2:25,[5 11 12 18])=A(9:2:25,[5 11 12 18]);%给出位于邻接座位中间位子的距门口的距离,这里去除了+1的情况A1(5,1)=0;%给出门的位置A([1,29,57,85],5:26)=M;A(113,:)=M;A(:,[1,5,26])=M;A(1:29,5:26)=A1;A(29:57,5:26)=A1;A(57:85,5:26)=A1;A(85:113,5:26)=A1;%至此给出了教室的形状,障碍物的分布,门口的位置C=zeros(113,26);C1=zeros(29,22);C1(9:2:25,[4 5 6 10 11 12 13 17 18 19])=M;C(1:29,5:26)=C1;C(29:57,5:26)=C1;C(57:85,5:26)=C1;C(85:113,5:26)=C1;%至此给出了整个楼层的人员分布情况表如矩阵C所示,此时给出的是初始情况,每个人都坐在座位上for g=1:340;%200次肯定可以结束,可以尝试用while,这里懒得了……imshow(max(A,C)==0,'InitialMagnification','fit')%取最大的作为人员在教室的分布,以及给出教室轮廓和障碍物图像%其后两个参数是为了调整图像的大小pause(0.25);C=run(C);end
3 运行结果
4 参考文献
[1]孙凯. 基于元胞自动机模型的学生群体疏散研究[D]. 太原科技大学.

