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

📄 entspa.m

📁 一个利用元胞自动机进行生态仿真的matlab程序
💻 M
字号:
function h=entspa(X,lns)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 
% Calculate entropy of CA configuration
%
%
%	Fist Coded			3   June  1998
%	Last Modefied		3   June  1998
%
%	Copyright (c)
%	T. Suzudo JAERI-CAIL
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Argument
% X	  : CA Matrix
% lns ; state per cell
%
% Variables
%  h	: average spatial entropy
%  tn: total number per state
%  nx: x-number of local sites
%  ny: y-number of local sites
%  ps : number of state per patch

% Matrix size
nlx = size(X,1);
nly = size(X,2);
if ~(nlx==nly) erorr('ERROR: Rectangle Matrix is not allowed.')
else nl=nlx;
end

sk=[1:2:nl-1];
sk1=[2:2:nl];

n2 = fix(size(X,1)/2);
tp = n2^2;  % total patch number

Y=zeros(n2);

% how many states
% We take 2x2 patchm, so
ps = lns^4;


% Calculate the probability
Y=X(sk,sk) + 2*X(sk1,sk) + 4*X(sk,sk1) + 8*X(sk1,sk1);
h = 0;
for ii=0:ps-1
	tn = sum(sum(~(Y-ii)));
	if tn>0
		h = h - (tn/tp)*log(tn/tp)/log(ps);
	end
end

⌨️ 快捷键说明

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