decode.m

来自「一个利用元胞自动机进行生态仿真的matlab程序」· M 代码 · 共 58 行

M
58
字号
function dcode=decode(num,ns,nei)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  DECODE: Decode 1-dimensional CA-Rules
%
%	Fist Coded			11 April		1997
%	Last Modefied		24 April		1997
%
%	Copyright (c)
%	T. Suzudo JAERI-CAIL
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% num 	:Rule number
% ns    	:number of cell states
% nei	:number of neighbors
% dcode	:Decoded string

if nargin == 2 nei = 3; end

if ns==2
	for ii=1:nei
		if num>ns^(nei-ii)
			dcode(ii)='1';
			num=num-ns^(nei-ii);
		else
			dcode(ii)='0';
		end
	end
elseif ns==3
	if num==1 dcode='000';
	elseif num==2 dcode='001';
	elseif num==3 dcode='002';
	elseif num==4 dcode='010';
	elseif num==5 dcode='011';
	elseif num==6 dcode='012';
	elseif num==7 dcode='020';
	elseif num==8 dcode='021';
	elseif num==9 dcode='022';
	elseif num==10 dcode='100';
	elseif num==11 dcode='101';
	elseif num==12 dcode='102';
	elseif num==13 dcode='110';
	elseif num==14 dcode='111';
	elseif num==15 dcode='112';
	elseif num==16 dcode='120';
	elseif num==17 dcode='121';
	elseif num==18 dcode='122';
	elseif num==19 dcode='200';
	elseif num==20 dcode='201';
	elseif num==21 dcode='202';
	elseif num==22 dcode='210';
	elseif num==23 dcode='211';
	elseif num==24 dcode='212';
	elseif num==25 dcode='220';
	elseif num==26 dcode='221';
	elseif num==27 dcode='222';
	else error(' ERROR: Invalid argument ');
	end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?