元胞自动机 生命游戏 Matlab实现 GUI
2015-08-20 15:02
756 查看
clf clear all %build the GUI %define the plot button plotbutton=uicontrol('style','pushbutton',... 'string','Run',... 'fontsize',12,... 'position',[100,400,50,20],... 'callback','run=1;'); %define the stop button erasebutton=uicontrol('style','pushbutton',... 'string','Stop',... 'fontsize',12,... 'position',[200,400,50,20],... 'callback','freeze=1;'); %define the Quit button quitbutton=uicontrol('style','pushbutton',... 'string','Quit',... 'fontsize',12,... 'position',[300,400,50,20],... 'callback','stop=1;close;'); number=uicontrol('style','text',... 'string','1',... 'fontsize',12,... 'position',[20,400,50,20]); %================================================= %CA setup n=128; %initialize the arrays z=zeros(n,n); cells=z; sum=z; %set a few cells to one cells(n/2,.25*n:.75*n)=1; cells(.25*n:.75*n,n/2)=1; cells=(rand(n,n))<.5; %how long for each case to stability or simple oscillators %build an image and display it imh=image(cat(3,cells,z,z)); set(imh,'erasemode','none') axis equal axis tight %index definition for cell update x=2:n-1; y=2:n-1; %Main event loop stop=0;%wait for a quit button push run=0;%wait for a draw freeze=0;%wait for a freeze while(stop==0) if(run==1) %nearest neighbor sum sum(x,y)=cells(x,y-1)+cells(x,y+1)+... cells(x-1,y)+cells(x+1,y)+... cells(x-1,y-1)+cells(x-1,y+1)+... cells(3:n,y-1)+cells(x+1,y+1); %The CA rule cells=(sum==3)|(sum==2&cells); %draw new image set(imh,'cdata',cat(3,cells,z,z)) %update the step number display stepnumber=1+str2num(get(number,'string')); set(number,'string',num2str(stepnumber)) end if(freeze==1) run=0; freeze=0; end drawnow %need this in the loop for controls to work end
相关文章推荐
- matlab_最小二乘优化问题
- matlab figure界面没有菜单栏的问题
- matlab的rem()和mod()函数
- MATLAB-曲线拟合
- matlab编程服务
- matlab基础函数
- Matlab 2014b For Mac安装破解
- matlab与.net混合编程
- matlab中如何保留指定的变量的数据
- matlab_无约束的非线性优化
- Matlab 之 cannot be saved to a MAT-file whose version is older than 7.3
- matlab_非线性优化
- matlab遍历文件夹
- 数字图像处理与机器视觉用到的Matlab语句
- matlab_线性规划
- matlab中figure的坐标轴label、title、xticklabel的旋转
- 最小二乘法拟合非线性函数及其Matlab/Excel 实现
- matlabR2008a函数编译成dll供vc6.0调用的方法
- 模拟退火算法求解旅行商问题(附c和matlab源代码)
- 使用Matlab绘制三维图的几种方法