| 查看: 1317 | 回复: 0 | ||
wangyongjian金虫 (初入文坛)
|
[求助]
MATLAB生命的游戏代码求助
|
|
各位大侠,我刚刚接触MATLAB,自己看了一下生命的游戏的代码。有几个困惑还请大侠们给解答一下,谢过了。 首先, %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 根据上面的代码可以知道,cells(n/2,.25*n:.75*n) = 1;cells(.25*n:.75*n,n/2) = 1是给cells矩阵赋值,但是我觉得cells = (rand(n,n))<.5 就已经可以完成任务了,而且加上cells = (rand(n,n))<.5 这一句后,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)? 第二,%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); 这个是计算一个方格周围近邻的个数, cells(3:n,y-1)是什么意思,看到很多计算近邻的代码都是这样写的,我觉得应该是 cells(x+1,y-1)啊。 第三, % The CA rule cells = (sum==3) | (sum==2 & cells)。 这句就不明白了,我觉得应该是cells(x,y) = (sum(x,y)==3) | (sum(x,y)==2 & cells)。。? 完整代码如下 %Conway's life with GUI 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(.5*n-1,.5*n-1)=1; %cells(.5*n-2,.5*n-2)=1; %cells(.5*n-3,.5*n-3)=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 the new image set(imh, 'cdata', cat(3,cells,z,z) ) %update the step number diaplay 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 |
» 猜你喜欢
参与限项
已经有3人回复
假如你的研究生提出不合理要求
已经有7人回复
实验室接单子
已经有4人回复
全日制(定向)博士
已经有4人回复
对氯苯硼酸纯化
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有12人回复
不自信的我
已经有12人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复
北核录用
已经有3人回复

找到一些相关的精华帖子,希望有用哦~
C语言小游戏源代码
已经有86人回复
求大神教MATLAB 生命游戏代码怎么写
已经有3人回复
matlab求助???
已经有6人回复
求解稀疏表示系数的matlab代码
已经有1人回复
MATLAB GUI 求助
已经有3人回复
MATLAB图像处理求助
已经有5人回复
求助MATLAB画图,二维曲线,总是出错,求助高手
已经有3人回复
matlab图像相关性分析的求助
已经有20人回复
matlab中画a=1.96直线线求助
已经有10人回复
matlab计算面积求助!!难
已经有8人回复
matlab求解色散方程,求助
已经有12人回复
matlab画图求助
已经有11人回复
求助 matlab交点问题
已经有19人回复
matlab 积分求助
已经有8人回复
matlab 问题求助,是否计算结果错误,如何改正?
已经有3人回复
matlab 气泡边缘提取 求助高手!!
已经有5人回复
【分享】电力电子应用技术的MATLAB仿真
已经有40人回复
【求助】请各位高手告诉我:这种想法能不能用matlab实现?200金币求助
已经有16人回复
【求助】Matlab 参数定义 求助
已经有5人回复
【求助】Weickert的各向异性扩散方程的滤波方法的matlab程序代码
已经有8人回复
科研从小木虫开始,人人为我,我为人人












回复此楼
点击这里搜索更多相关资源