📄 rulegen1.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% RULEGEN1
% Rule generator for 1-dimensional CA in Ecodyamica
%
%
% Fist Coded 27 March 1997
% Last Modefied 28 December 1998
%
% Copyright (c)
% T. Suzudo JAERI-CAIL
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Note on 23 April 1997
% How are the vaiables for rules named?
% r_code(a)(b)(c) where a is space dimension; b is a number of cell states,
% and c is a number of neighbors
% Rule boxes when ns(1)=2 and nei(1)=3
load c:\ecody\rule1
if (~(exist('r_code123')) | size(r_code123,2) ~=8 ) r_code123=[0 1 1 1 1 1 1 0]; end
if (~(exist('tr_code123')) | size(tr_code123,2) ~=4 ) tr_code123=[0 1 0 0]; end
if (~(exist('otr_code123')) | size(otr_code123,2) ~=6 ) otr_code123=[0 1 0 0 1 0]; end
if (~(exist('r_code125')) | size(r_code125,2) ~=32)
r_code125=[0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; end
if (~(exist('tr_code125')) | size(tr_code125,2) ~=6 ) tr_code125=[0 1 0 0 1 0]; end
if (~(exist('otr_code125')) | size(otr_code125,2) ~=10 ) otr_code125=[0 1 0 0 0 0 0 1 0 0]; end
if (~(exist('r_code133')) | size(r_code133,2) ~=27) ...
r_code133=[0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; end
if (~(exist('sym_code133')) | size(sym_code133,2) ~=18) ...
sym_code133=[0 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; end
if (~(exist('r_code127')) | size(r_code127,2) ~=128) ...
r_code127=[0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; end
if (~(exist('tr_code127')) | size(tr_code127,2) ~=8) ...
tr_code127=[0 0 0 1 1 0 0 0]; end
if (~(exist('otr_code127')) | size(otr_code127,2) ~=14) ...
otr_code127=[0 0 0 1 1 0 0 0 0 1 1 0 0 0]; end
if (~(exist('tr_code129')) | size(tr_code129,2) ~=10) ...
tr_code129=[0 0 0 1 1 0 0 0 1 0]; end
if (~(exist('otr_code129')) | size(otr_code129,2) ~=18) ...
otr_code129=[0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0]; end
if (~(exist('tr_code1227')) | size(tr_code1227,2) ~=28) ...
tr_code1227=[0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0 0]; end
if (~(exist('otr_code1227')) | size(otr_code1227,2) ~=54) ...
otr_code1227=[0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0 ...
0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 0 0 0 1 0]; end
rc1save=...
'save c:\ecody\rule1 r_code1* tr_code1* otr_code1* sym_code1*;';
load c:\ecody\stepfp
lns=ns(1);
lnei=nei(1);
ltot=tot(1);
nr=lns^lnei;
if lns==2
if lnei==3
rgen123;
elseif lnei == 5
rgen125;
elseif lnei == 7
rgen127;
elseif lnei == 9
rgen129;
elseif lnei == 27
rgen1227;
else
error('Invalid number of neighbors');
end
elseif lns==3
rgen133;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -