24小时热门版块排行榜    

查看: 1411  |  回复: 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
回复此楼
混不好我就不回来了
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

相关版块跳转 我要订阅楼主 wangyongjian 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[找工作] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 vZfe6xYu34yj 2026-09-15 3/150 2026-09-18 02:40 by cITaGg3p5edr
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 Aj1rhIDL5ixY 2026-09-14 4/200 2026-09-18 01:54 by cITaGg3p5edr
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 6F5UbRU2I5hL 2026-09-14 3/150 2026-09-18 00:28 by cITaGg3p5edr
[考博] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +4 s3fFTmArrBt6 2026-09-13 6/300 2026-09-17 23:16 by cuPZTDXS3VOd
[公派出国] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +8 QUjhNVAcOSff 2026-09-13 12/600 2026-09-17 22:15 by cuPZTDXS3VOd
[基金申请] 国社科系统bug了,是不是要放榜了? +5 kynobel 2026-09-16 6/300 2026-09-17 21:37 by tosogo
[硕博家园] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 mibUvS8DDCwf 2026-09-15 3/150 2026-09-17 16:03 by 0ngsZVSCTS7z
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +4 Aj1rhIDL5ixY 2026-09-14 4/200 2026-09-17 14:27 by ObVzqQQh1rrE
[考博] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +5 40ms4Wlo4umh 2026-09-14 5/250 2026-09-17 14:05 by ObVzqQQh1rrE
[硕博家园] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 23jxep3nCNZb 2026-09-14 5/250 2026-09-17 13:53 by ObVzqQQh1rrE
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +6 23jxep3nCNZb 2026-09-14 6/300 2026-09-17 13:27 by ObVzqQQh1rrE
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +4 yaCh4X3wd045 2026-09-14 4/200 2026-09-17 13:17 by ObVzqQQh1rrE
[公派出国] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +5 6F5UbRU2I5hL 2026-09-14 5/250 2026-09-17 13:17 by ObVzqQQh1rrE
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 s3fFTmArrBt6 2026-09-14 6/300 2026-09-17 12:29 by ObVzqQQh1rrE
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +4 mibUvS8DDCwf 2026-09-15 4/200 2026-09-17 06:26 by k06BKNblrGRH
[考研] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +6 6F5UbRU2I5hL 2026-09-14 6/300 2026-09-17 03:14 by Tql5LQhh5rLK
[找工作] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +6 6F5UbRU2I5hL 2026-09-14 6/300 2026-09-17 03:04 by Tql5LQhh5rLK
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +7 3n8v2C8RimXI 2026-09-13 7/350 2026-09-16 02:35 by DgNGHc3h5tPl
[教师之家] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +4 s3fFTmArrBt6 2026-09-13 4/200 2026-09-15 06:50 by 5BDX0d0WFp7t
[教师之家] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 LwdutQ8HoqWP 2026-09-13 4/200 2026-09-14 16:13 by Aj1rhIDL5ixY
信息提示
请填处理意见