⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rulegen1.m

📁 一个利用元胞自动机进行生态仿真的matlab程序
💻 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 + -