- 积分
- 27
- 注册时间
- 2008-3-10
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2011-6-27 21:59:56
|
显示全部楼层
来自 英国
按照你5L的程序和要求改的,每隔10步存一次。
- clc;clear;close all;
- aviobj = avifile('11111111.avi','compression','None','fps',5);
- N=256; % 设置状态矩阵线元胞总数
- t1=4;t2=6;
- S=zeros(N); % S是状态矩阵
- S(fix(29*N/59):fix(30*N/59),fix(29*N/59):fix(30*N/59))=1;
- sum(S(:))
- Ii=imshow(1-S,[]);
- set(gcf,'DoubleBuffer','on');set(gcf,'color','w');set(gcf,'Position',[200 200 560 420]);
- ti=title('CAS=0', 'Fontsize',14,'Fontname','Times New Roman' );%显示标题
- axis square; % 设置坐标轴属性
- Sm=zeros(N+2); % 生成一个比状态矩阵多2行和2列的矩阵
- for k=1:110;
- Sm(2:end-1,2:end-1)=S; % 把Sm中间NxN的部分赋值为状态矩阵S
- M=Sm(1:end-2,2:end-1)+Sm(3:end,2:end-1)+Sm(2:end-1,1:end-2)+Sm(2:end-1,3:end); % 计算4近邻之和
- S=mod(M,2); % 用模除得到下一时刻状态矩阵的数值
- set(Ii,'CData',1-S); % 更新显示的数据
- set(ti,'string',['CAS=',num2str(k)]); % 显示更新的CAS时间步数
- pause(0.02); % 暂停一下显示出动画效果
- if rem(k,10)==0 %每10步存1帧
- F=getframe(gcf,[0 0 560 420]);aviobj=addframe(aviobj,F);
- end
- end
- aviobj=close(aviobj);
复制代码
我试过把K值改大,没发现什么问题啊。 |
评分
-
1
查看全部评分
-
|