📄 rgen133.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% RGEN133
% Rule generator for 1-dimensional CA
% when number of states is 2 and when number of neighbors is 3
% This script-M file is called by RULEGEN1
%
% Fist Coded 27 March 1997
% Last Modefied 28 December 1998
%
% Copyright (c)
% T. Suzudo JAERI-CAIL
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
cleanup='clear string1 r_hand* x y x0 y0;';
figure(11);
fig11=gcf;
x0=0.1;
y0=0.95;
dx=0.012;
dy=0.05;
% Title
x=x0;
y=y0;
uicontrol(fig11,'Style','text','String','Ecodynamica Rule Generator for 1 dimension K=3 N=3',...
'Fontsize',12,...
'foregroundcolor','red',...
'Units','normalized',...
'position',[0,y,1,dy]);
%%
%% General Rules
%%
if tot(1)==3
for i=1:nr
x=x0+fix((i-1)/9)*0.3;
y=y0-(rem((i-1),9)+1)*dy;
uicontrol(fig11,'Style','text','String',decode(i,ns(1)),...
'Units','normalized',...
'position',[x,y,0.1,dy]);
end
% Rule 1-9
x=x0;
y=y0-dy;
r_hand1=uicontrol(fig11,'Style','edit','String',r_code133(1),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand1,''String''),''%d''); r_code133(1)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand2=uicontrol(fig11,'Style','edit','String',r_code133(2),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand2,''String''),''%d''); r_code133(2)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand3=uicontrol(fig11,'Style','edit','String',r_code133(3),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand3,''String''),''%d''); r_code133(3)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand4=uicontrol(fig11,'Style','edit','String',r_code133(4),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand4,''String''),''%d''); r_code133(4)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand5=uicontrol(fig11,'Style','edit','String',r_code133(5),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand5,''String''),''%d''); r_code133(5)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand6=uicontrol(fig11,'Style','edit','String',r_code133(6),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand6,''String''),''%d''); r_code133(6)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand7=uicontrol(fig11,'Style','edit','String',r_code133(7),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand7,''String''),''%d''); r_code133(7)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand8=uicontrol(fig11,'Style','edit','String',r_code133(8),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand8,''String''),''%d''); r_code133(8)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand9=uicontrol(fig11,'Style','edit','String',r_code133(9),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand9,''String''),''%d''); r_code133(9)=min([ns(1)-1 code]);']);
% Rule 10-18
x=x0+0.3;
y=y0-dy;
r_hand10=uicontrol(fig11,'Style','edit','String',r_code133(10),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand10,''String''),''%d''); r_code133(10)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand11=uicontrol(fig11,'Style','edit','String',r_code133(11),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand11,''String''),''%d''); r_code133(11)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand12=uicontrol(fig11,'Style','edit','String',r_code133(12),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand12,''String''),''%d''); r_code133(12)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand13=uicontrol(fig11,'Style','edit','String',r_code133(13),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand13,''String''),''%d''); r_code133(13)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand14=uicontrol(fig11,'Style','edit','String',r_code133(14),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand14,''String''),''%d''); r_code133(14)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand15=uicontrol(fig11,'Style','edit','String',r_code133(15),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand15,''String''),''%d''); r_code133(15)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand16=uicontrol(fig11,'Style','edit','String',r_code133(16),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand16,''String''),''%d''); r_code133(16)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand17=uicontrol(fig11,'Style','edit','String',r_code133(17),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand17,''String''),''%d''); r_code133(17)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand18=uicontrol(fig11,'Style','edit','String',r_code133(18),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand18,''String''),''%d''); r_code133(18)=min([ns(1)-1 code]);']);
% Rule 19-27
x=x0+0.6;
y=y0-dy;
r_hand19=uicontrol(fig11,'Style','edit','String',r_code133(19),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand19,''String''),''%d''); r_code133(19)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand20=uicontrol(fig11,'Style','edit','String',r_code133(20),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand20,''String''),''%d''); r_code133(20)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand21=uicontrol(fig11,'Style','edit','String',r_code133(21),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand21,''String''),''%d''); r_code133(21)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand22=uicontrol(fig11,'Style','edit','String',r_code133(22),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand22,''String''),''%d''); r_code133(22)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand23=uicontrol(fig11,'Style','edit','String',r_code133(23),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand23,''String''),''%d''); r_code133(23)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand24=uicontrol(fig11,'Style','edit','String',r_code133(24),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand24,''String''),''%d''); r_code133(24)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand25=uicontrol(fig11,'Style','edit','String',r_code133(25),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand25,''String''),''%d''); r_code133(25)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand26=uicontrol(fig11,'Style','edit','String',r_code133(26),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand26,''String''),''%d''); r_code133(26)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand27=uicontrol(fig11,'Style','edit','String',r_code133(27),...
'Units','normalized',...
'position',[x+0.1,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand27,''String''),''%d''); r_code133(27)=min([ns(1)-1 code]);']);
%%
%% Symmetric Rules
%%
elseif tot(1)==4
% Write entries
x0=0.05;
for ii=1:18
x=x0+fix((ii-1)/6)*0.3;
y=y0-(rem((ii-1),6)+1)*dy;
if ii==1 string1=['000 '];
elseif ii==2 string1=['001 100 '];
elseif ii==3 string1=['002 200 '];
elseif ii==4 string1=['101 '];
elseif ii==5 string1=['102 201 '];
elseif ii==6 string1=['202 '];
elseif ii==7 string1=['010 '];
elseif ii==8 string1=['011 110 '];
elseif ii==9 string1=['012 210 '];
elseif ii==10 string1=['111 '];
elseif ii==11 string1=['112 211 '];
elseif ii==12 string1=['212 '];
elseif ii==13 string1=['020 '];
elseif ii==14 string1=['021 120 '];
elseif ii==15 string1=['022 220 '];
elseif ii==16 string1=['121 '];
elseif ii==17 string1=['122 221 '];
elseif ii==18 string1=['222 '];
end
uicontrol(fig11,'Style','text','String',string1,...
'Units','normalized',...
'position',[x,y,0.25,dy]);
end
% Write Editable Text Area
% Rule 1-6
x=0.3;
y=y0-dy;
r_hand1=uicontrol(fig11,'Style','edit','String',sym_code133(1),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand1,''String''),''%d''); sym_code133(1)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand2=uicontrol(fig11,'Style','edit','String',sym_code133(2),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand2,''String''),''%d''); sym_code133(2)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand3=uicontrol(fig11,'Style','edit','String',sym_code133(3),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand3,''String''),''%d''); sym_code133(3)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand4=uicontrol(fig11,'Style','edit','String',sym_code133(4),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand4,''String''),''%d''); sym_code133(4)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand5=uicontrol(fig11,'Style','edit','String',sym_code133(5),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand5,''String''),''%d''); sym_code133(5)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand6=uicontrol(fig11,'Style','edit','String',sym_code133(6),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand6,''String''),''%d''); sym_code133(6)=min([ns(1)-1 code]);']);
% Rule 7-12
x=0.6;
y=y0-dy;
r_hand7=uicontrol(fig11,'Style','edit','String',sym_code133(7),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand7,''String''),''%d''); sym_code133(7)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand8=uicontrol(fig11,'Style','edit','String',sym_code133(8),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand8,''String''),''%d''); sym_code133(8)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand9=uicontrol(fig11,'Style','edit','String',sym_code133(9),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand9,''String''),''%d''); sym_code133(9)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand10=uicontrol(fig11,'Style','edit','String',sym_code133(10),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand10,''String''),''%d''); sym_code133(10)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand11=uicontrol(fig11,'Style','edit','String',sym_code133(11),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand11,''String''),''%d''); sym_code133(11)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand12=uicontrol(fig11,'Style','edit','String',sym_code133(12),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand12,''String''),''%d''); sym_code133(12)=min([ns(1)-1 code]);']);
% Rule 13-18
x=0.9;
y=y0-dy;
r_hand13=uicontrol(fig11,'Style','edit','String',sym_code133(13),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand13,''String''),''%d''); sym_code133(13)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand14=uicontrol(fig11,'Style','edit','String',sym_code133(14),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand14,''String''),''%d''); sym_code133(14)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand15=uicontrol(fig11,'Style','edit','String',sym_code133(15),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand15,''String''),''%d''); sym_code133(15)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand16=uicontrol(fig11,'Style','edit','String',sym_code133(16),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand16,''String''),''%d''); sym_code133(16)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand17=uicontrol(fig11,'Style','edit','String',sym_code133(17),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand17,''String''),''%d''); sym_code133(17)=min([ns(1)-1 code]);']);
y=y-dy;
r_hand18=uicontrol(fig11,'Style','edit','String',sym_code133(18),...
'Units','normalized',...
'position',[x,y,0.05,dy],...
'CallBack',...
['code=sscanf(get(r_hand18,''String''),''%d''); sym_code133(18)=min([ns(1)-1 code]);']);
else
error('Invalid Rule Type');
end
% Determination of the parameters
%
x=0.1;
y=2*dy;
uicontrol(fig11,'Style','push',...
'Units','normalized',...
'Position',[x y 0.15 dy],...
'String','OK',...
'CallBack',[rc1save 'close(fig11);' cleanup] );
uicontrol(fig11,'Style','push',...
'Units','normalized',...
'Position',[x+1/3 y 0.15 dy],...
'String','Apply',...
'CallBack',[rc1save 'close(fig11);' cleanup 'rgen133;']);
uicontrol(fig11,'Style','push',...
'Units','normalized',...
'Position',[x+2/3 y 0.15 dy],...
'String','RUN',...
'CallBack',[rc1save 'close(fig11);' cleanup 'figure(1); runeco1;'] );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -