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 简介
基于元胞自动机模拟教室疏散代码,分析在随机教室情况下人员流动情况。
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]. 太原科技大学.