雨水冲刷沙堡模型——matlab元胞自动机
雨水冲刷沙堡模型,新手练习matlab元胞自动机写的。
这是代码
clear all;
% 设置GUI按键
plotbutton=uicontrol('style','pushbutton','string','运行', 'fontsize',12, 'position',[150,400,50,20], 'callback', 'run=1;');
erasebutton=uicontrol('style','pushbutton','string','停止','fontsize',12,'position',[250,400,50,20],'callback','freeze=1;');
quitbutton=uicontrol('style','pushbutton','string','退出','fontsize',12,'position',[350,400,50,20],'callback','stop=1;close;');
%设置元胞大小
n=100;
C = zeros(n,n);
%设置种类 0:空气 1:沙子 2:雨滴
ca= zeros(n,n);
%沙堆和雨滴的数量
numsand=zeros(10000,1);
numrain=zeros(10000,1);
time=0;
%设置沙堆
for i=1:nfor j=1:nif i<=35if j<=i-10ca(j,i)=1;endelseif i<=65if j<=25ca(j,i)=1;endelseif j<=-i+90ca(j,i)=1;endendend
end
%绘制沙堆
for i=10:90for j=3:97k=0;for i1=1:3for j1=1:3if ca(j+j1-2,i+i1-2)==1k=k+1;endendendif k==1||k==2||k==3C(j,i)=60;elseif k==4||k==5||k==6C(j,i)=57;elseif k==7||k==8||k==9C(j,i)=55;endend
endimage(C)
set(gca,'YDir','normal')
stop= 0; run = 0;freeze = 0;% for i1=2:8
% C(100,i1*10)=20;
% endwhile stop==0if run==1%沙堆重绘 颜色由上方五个决定for i=10:90for j=3:97k=0;for i1=1:3for j1=1:3if ca(j+j1-2,i+i1-2)==1k=k+1;endendendif k==1||k==2||k==3C(j,i)=60;elseif k==4||k==5||k==6C(j,i)=57;elseif k==7||k==8||k==9C(j,i)=55;endendend
%模拟雨滴for j2=2:100for i2=1:100if ca(j2,i2)==2C(j2,i2)=0;ca(j2,i2)=0;if ca(j2-1,i2)==1ca(j2-1,i2)=0;elseca(j2-1,i2+1)=2;C(j2-1,i2+1)=20;endendendenda=unidrnd(n);C(n,a)=20;ca(n,a)=2;
%数据储存
time=time+1;for j3=1:100for i3=1:100if ca(j3,i3)==1numsand(time)=numsand(time)+1;endendend
numrain(time)=time/(1375-numsand(time));
%粘附在下层
%冲刷次数image(C)
set(gca,'YDir','normal')
if time==3000run=0;
endendif freeze==1run = 0;freeze = 0;enddrawnow %更新图窗并处理回调
end
沙堡体积随时间变化图
time1=1:3000;
numsand1=numsand(1:3000);
plot(time1,numsand1)
xlabel('时间(s)');
ylabel('沙堡体积(m^3)');
title('随着雨水冲刷沙堡体积的改变');
grid on;
雨水冲刷沙堡模型——matlab元胞自动机相关推荐
- 雨水冲刷沙堡模型——matlab元胞自动机(二)
第二代和第一代有些许不同,每体积沙子被雨水打到后会增加一定量的含水量,当最上面一层的含水量平均值大于某个值得时候,最上面一层沙子就会塌陷. 不多说啥了,看代码(个人练习记录,大佬轻喷) clear a ...
- 【Matlab元胞自动机】元胞自动机大型商场人流疏散【含源码 665期】
一.代码运行视频(哔哩哔哩) [Matlab元胞自动机]元胞自动机大型商场人流疏散[含源码 665期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]贺琳,聂化 ...
- 【元胞自动机】基于matlab元胞自动机3D森林火灾模型【含Matlab源码 656期】
⛄一.元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 · 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视. 1970 年, 剑桥大学的约翰 · 何 ...
- 【元胞自动机】基于matlab元胞自动机模拟SEIR传播模型和采取隔离措施的SEIR模型【含Matlab源码 2181期】
⛄一.元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 · 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视.1970 年, 剑桥大学的约翰 · 何顿 ...
- 【元胞自动机】基于matlab元胞自动机双车道交通流模型含靠右行驶【含Matlab源码 231期】
⛄一.元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 · 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视. 1970 年, 剑桥大学的约翰 · 何 ...
- 【元胞自动机】基于matlab元胞自动机多车道信号交叉口仿真【含Matlab源码 818期】
⛄一.元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 · 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视. 1970 年, 剑桥大学的约翰 · 何 ...
- matlab 元胞自动机
用MATLAB实现元胞自动机的事例 file 1:life.m %% 初始化 m = 50; X = zeros(m,m); X(25,25) = 1;n = [m 1:m-1];e = [2:m 1 ...
- 【元胞自动机】基于matlab元胞自动机模拟交通路况(含超车)【含Matlab源码 2389期】
⛄一.元胞自动机简介 1 元胞自动机发展历程 最初的元胞自动机是由冯 · 诺依曼在 1950 年代为模拟生物 细胞的自我复制而提出的. 但是并未受到学术界重视. 1970 年, 剑桥大学的约翰 · 何 ...
- MATLAB元胞自动机报告,元胞自动机概述与MATLAB实现
什么是元胞自动机? 元胞自动机(cellular automata,CA) 是一种时间.空间.状态都离散,空间相互作用和时间因果关系为局部的网格动力学模型,具有模拟复杂系统时空演化过程的能力.它能构建 ...
最新文章
- Struts2.0下的客户端验证
- C# 从不是创建控件 的线程访问它
- 符号库匹配不对的原因_王者荣耀:万恶的游戏匹配机制,最菜的队友才是游戏胜利的关键...
- CentOS 7 定时计划任务设置
- vue 微信开发工具 Maximum call stack size exceeded
- Qt工作笔记-在界面上输出变量、类、this指针的地址
- SpringCloud工作笔记052---各种数据库在java中的连接配置_以及连接驱动
- Caffe编写Python layer
- Go语言:交换两个整型变量的值
- 串口软件与uPs测试,智能化UPS的软件设计及串口通信实现
- 轻松搞懂Word2vec / FastText+BiLSTM、TextCNN、CNN+BiLSTM、BiLSTM+Attention实现中英文情感分类
- 【Mysql 错误定位】语法错误
- 英语中学生测试软件,初中生免费学英语的软件哪个好
- linux 查看dhcp dns,RHEL6 DNS+DHCP+DDNS
- HTML标签 链接 CSS样式
- 解决input输入框与select下拉框水平不对齐
- Hibernate Criteria对象详解(条件查询)
- 单片机要学多久可以找到工作?能找到哪类的工作
- 阿里云 MaxCompute 行业级应用(优酷、斗鱼)及 MaxCompute SQL 调优
- 大学计算机应用技术基础vb考试,计算机vb考试试题精选