
现在还有元胞自动机的MATLAB代码吗???
2个回答
展开全部
你的sum和cells都是矩阵,但是维度不同。
如果是这样,你在这段程序的前面给sum预分配个空间sum=zeros(size(cells,1),size(cells,2))。
然后注意遍历x,y的时候,不要到边界上,否则x+1,y+1之类的就越界了。
如果是这样,你在这段程序的前面给sum预分配个空间sum=zeros(size(cells,1),size(cells,2))。
然后注意遍历x,y的时候,不要到边界上,否则x+1,y+1之类的就越界了。

2025-03-13 广告
LTK61101转换器是深圳市恒凯微电子科技有限公司推荐的一款高效升压解决方案。它是一款异步大功率升压转换器,集成20mΩ功率开关,支持2.5V至16V的宽输入电压范围,适用于单节或双节锂电池及12V铅酸电池应用。该转换器具有15A开关电流...
点击进入详情页
本回答由恒凯微电子提供
展开全部
w=50;
m=2;
cell=randsrc(w,w,[0 1]);
cellx=zeros(w+m,w+m);
for i=1:w
for j=1:w
cellx(i+m/2,j+m/2)=cell(i,j);
end
end
for i=1:w
for j=1:w
if cell(i,j)==1
if (cellx(i,j+1)+cellx(i+2,j+1)+cellx(i+1,j)+cellx(i+1,j+2)+cellx(i,j)+cellx(i,j+2)+cellx(i+2,j)+cellx(i+2,j+2) ==2)...
||(cellx(i,j+1)+cellx(i+2,j+1)+cellx(i+1,j)+cellx(i+1,j+2)+cellx(i,j)+cellx(i,j+2)+cellx(i+2,j)+cellx(i+2,j+2)==3)
cell(i,j)=1;
else
cell(i,j)=0;
end
elseif cell(i,j)==0
if (cellx(i,j+1)+cellx(i+2,j+1)+cellx(i+1,j)+cellx(i+1,j+2)+cellx(i,j)+cellx(i,j+2)+cellx(i+2,j)+cellx(i+2,j+2)==3)
cell(i,j)=1
else
cell(i,j)=0;
end
end
end
end
for i=1:w
for j=1:w
cellx(i+m/2,j+m/2)=cell(i,j);
end
end
元胞自动机导论里面的生命游戏
m=2;
cell=randsrc(w,w,[0 1]);
cellx=zeros(w+m,w+m);
for i=1:w
for j=1:w
cellx(i+m/2,j+m/2)=cell(i,j);
end
end
for i=1:w
for j=1:w
if cell(i,j)==1
if (cellx(i,j+1)+cellx(i+2,j+1)+cellx(i+1,j)+cellx(i+1,j+2)+cellx(i,j)+cellx(i,j+2)+cellx(i+2,j)+cellx(i+2,j+2) ==2)...
||(cellx(i,j+1)+cellx(i+2,j+1)+cellx(i+1,j)+cellx(i+1,j+2)+cellx(i,j)+cellx(i,j+2)+cellx(i+2,j)+cellx(i+2,j+2)==3)
cell(i,j)=1;
else
cell(i,j)=0;
end
elseif cell(i,j)==0
if (cellx(i,j+1)+cellx(i+2,j+1)+cellx(i+1,j)+cellx(i+1,j+2)+cellx(i,j)+cellx(i,j+2)+cellx(i+2,j)+cellx(i+2,j+2)==3)
cell(i,j)=1
else
cell(i,j)=0;
end
end
end
end
for i=1:w
for j=1:w
cellx(i+m/2,j+m/2)=cell(i,j);
end
end
元胞自动机导论里面的生命游戏
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询