📄 seteco.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SETECO:
% Setting of fundamental parameters for
% Simulation Tool for Ecological Phenomena
%
% Fist Coded 5 March 1997
% Last Modefied 18 May 1999
%
% Copyright (c)
% T. Suzudo JAERI-CAIL
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Read the stored parameters
load c:\ecody\stepfp
% Check existence of the parameters, if not exist set default values.
if ~(exist('nls') & size(nls,2)==3) nls=[100 100 64]; end
if ~(exist('pd0') & size(pd0,2)==3) pd0=[0.4 0.1 0.4]; end
if ~(exist('ani') & size(ani,2)==3&min(ani)>0) ani=[1 1 1]; end
if ~(exist('tmax') & size(tmax,2)==3) tmax=[inf inf inf]; end
if ~(exist('dr') & size(dr,2)==3) dr=[0 0 0]; end
if ~(exist('rg') & size(rg,2)==3) rg=[0 0 0]; end
if ~(exist('itr') & size(itr,2)==3) itr=[1 1 1]; end
if ~(exist('ns') & size(ns,2)==3) ns=[2 2 2]; end
if ~(exist('nei') & size(nei,2)==3) nei=[3 9 7]; end
if ~(exist('tot') & size(tot,2)==3) tot=[1 1 1]; end
psave='save c:\ecody\stepfp nls pd0 ani tmax dr rg itr ns nei tot;';
fig=gcf;
clf;
figure(fig);
x0=0.1;
y0=0.95;
dx=0.012;
dy=0.05;
wx=0.18; % X-width for click space
% Title
x=x0;
y=y0;
uicontrol(fig,'Style','text','String','Ecodynamica SETUP Menu',...
'Fontsize',12,...
'foregroundcolor','red',...
'Units','normalized',...
'position',[0,y,1,dy]);
%%
%% Create the frame for 1-dimension CA
%%
y=y0-2*dy;
uicontrol(fig,'Style','text','String','1 dimension CA',...
'Units','normalized',...
'position',[x+wx,y,wx,dy]);
% Lattice Size
y=y-dy;
uicontrol(fig,'Style','text','String','Lattice Size',...
'Units','normalized',...
'position',[x,y,wx,dy]);
nl_1=uicontrol(fig,'Style','edit','String',num2str(nls(1)),...
'Units','normalized',...
'position',[x+wx,y,wx,dy],...
'CallBack',['nls(1)=sscanf(get(nl_1,''String''),''%d'');']);
% Max. time
y=y-dy;
uicontrol(fig,'Style','text','String','Max. time',...
'Units','normalized',...
'position',[x,y,wx,dy]);
tmax_1=uicontrol(fig,'Style','edit','String',num2str(tmax(1)),...
'Units','normalized',...
'position',[x+wx,y,wx,dy],...
'CallBack',['tmax(1)=sscanf(get(tmax_1,''String''),''%d'');']);
% Number of states
y=y-dy;
uicontrol(fig,'Style','text','String','States per site',...
'Units','normalized',...
'position',[x,y,wx,dy]);
ns_1=uicontrol(fig,'Style','popup','String','2|3',...
'Units','normalized',...
'Value',ns(1)-1,...
'position',[x+wx,y,wx,dy],...
'CallBack',['cb_ns=[2 3];',...
'ns(1)=cb_ns(get(ns_1,''Value''));']);
% Number of Neighbors
y=y-dy;
uicontrol(fig,'Style','text','String','Neighbors',...
'Units','normalized',...
'position',[x,y,wx,dy]);
invnei1=[0 0 1 0 2 0 3 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5];
nei_1=uicontrol(fig,'Style','popup','String','3|5|7|9',...
'Units','normalized',...
'position',[x+wx,y,wx,dy],...
'Value',invnei1(nei(1)),...
'CallBack',['cb_nei=[3 5 7 9];',...
'nei(1)=cb_nei(get(nei_1,''Value''));']);
% Rule Types 1:Totalistic rule 2:Outer Totalistic rule 3:General rule 4:Symmetric
y=y-dy;
uicontrol(fig,'Style','text','String','Rule Type',...
'Units','normalized',...
'position',[x,y,wx,dy]);
tot_1=uicontrol(fig,'Style','popup','String','Totalistic|Outer Totalistic|General|Symmetric',...
'Units','normalized',...
'Position',[x+wx y wx dy],...
'Value',tot(1),...
'CallBack',['tot(1)=get(tot_1,''Value'');']);
% Animation:1:none 2: animation
y=y-dy;
uicontrol(fig,'Style','text','String','view',...
'Units','normalized',...
'position',[x,y,wx,dy]);
ani_1=uicontrol(fig,'Style','popup','String','None|Movie',...
'Units','normalized',...
'Position',[x+wx y wx dy],...
'Value',ani(1),...
'CallBack',['ani(1)=get(ani_1,''Value'');']);
% Initial Density
y=y-2*dy;
uicontrol(fig,'Style','text','String','Initial density',...
'Units','normalized',...
'position',[x,y,wx,dy]);
uicontrol(fig,'Style','text','String',num2str(pd0(1)),...
'Units','normalized',...
'position',[x+wx,y,wx,dy]);
y=y-dy;
pd_1=uicontrol(fig,'Style','slider',...
'Units','normalized',...
'Position',[x+wx y wx dy],...
'Min',0,'Max',1,...
'Value',pd0(1),...
'CallBack',['pd0(1)=round(100*get(pd_1,''Value''))/100;']);
% Initial thriving range
y=y-dy;
uicontrol(fig,'Style','text','String','Initial thriving range',...
'Units','normalized',...
'position',[x,y,wx,dy]);
uicontrol(fig,'Style','text','String',num2str(itr(1)),...
'Units','normalized',...
'position',[x+wx,y,wx,dy]);
y=y-dy;
itr_1=uicontrol(fig,'Style','slider',...
'Units','normalized',...
'Position',[x+wx y wx dy],...
'Min',0,'Max',1,...
'Value',itr(1),...
'CallBack',['itr(1)=round(100*get(itr_1,''Value''))/100;']);
% Same Intitial State Switch
y=y-dy;
rg_1=uicontrol(fig,'Style','checkbox',...
'Units','normalized',...
'Position',[x+wx y wx dy],...
'String','same RAND',...
'Value',rg(1),...
'CallBack',['rg(1)=get(rg_1,''Value'');']);
%%
%% Create the frame for 2-dimension CA
%%
x=x0+2*wx;
y=y0-2*dy;
uicontrol(fig,'Style','text','String','2 dimension CA',...
'Units','normalized',...
'position',[x,y,wx,dy]);
% Latise size
y=y-dy;
nl_2=uicontrol(fig,'Style','edit','String',num2str(nls(2)),...
'Units','normalized',...
'position',[x,y,wx,dy],...
'CallBack',['nls(2)=sscanf(get(nl_2,''String''),''%d'');']);
% Maximum time
y=y-dy;
tmax_2=uicontrol(fig,'Style','edit','String',num2str(tmax(2)),...
'Units','normalized',...
'position',[x,y,wx,dy],...
'CallBack',['tmax(2)=sscanf(get(tmax_2,''String''),''%d'');']);
% Number of cell state
y=y-dy;
ns_2=uicontrol(fig,'Style','popup','String','2|3',...
'Units','normalized',...
'Value',ns(2)-1,...
'position',[x y wx dy],...
'CallBack',['cb_ns=[2 3];',...
'ns(2)=cb_ns(get(ns_2,''Value''));']);
% Number of Neighbors
y=y-dy;
nei_2=uicontrol(fig,'Style','popup','String','5|9',...
'Units','normalized',...
'position',[x y wx dy],...
'Value',(nei(2)-1)/4,...
'CallBack',['cb_nei=[5 9];',...
'nei(2)=cb_nei(get(nei_2,''Value''));']);
% Rule Types 1:Totalistic 2:Outer Totalistic 3:Symmetric
y=y-dy;
tot_2=uicontrol(fig,'Style','popup','String','Totalistic |Outer Totalistic|Symmetric',...
'Units','normalized',...
'Position',[x y wx dy],...
'Value',tot(2),...
'CallBack',['tot(2)=get(tot_2,''Value'');']);
% Movie/Animation:1:none 2:movie
y=y-dy;
ani_2=uicontrol(fig,'Style','popup','String','None|Movie',...
'Units','normalized',...
'Position',[x y wx dy],...
'Value',ani(2),...
'CallBack',['ani(2)=get(ani_2,''Value'');']);
% Initial Density
y=y-2*dy;
uicontrol(fig,'Style','text','String',num2str(pd0(2)),...
'Units','normalized',...
'position',[x,y,wx,dy]);
y=y-dy;
pd_2=uicontrol(fig,'Style','slider',...
'Units','normalized',...
'Position',[x y wx dy],...
'Min',0,'Max',1,...
'Value',pd0(2),...
'CallBack',['pd0(2)=round(100*get(pd_2,''Value''))/100;']);
% Initial Thriving Range
y=y-dy;
uicontrol(fig,'Style','text','String',num2str(itr(2)),...
'Units','normalized',...
'position',[x,y,wx,dy]);
y=y-dy;
itr_2=uicontrol(fig,'Style','slider',...
'Units','normalized',...
'Position',[x y wx dy],...
'Min',0,'Max',1,...
'Value',itr(2),...
'CallBack',['itr(2)=round(100*get(itr_2,''Value''))/100;']);
% Same Initial State Switch
y=y-dy;
rg_2=uicontrol(fig,'Style','checkbox',...
'Units','normalized',...
'Position',[x y wx dy],...
'String','same RAND',...
'Value',rg(2),...
'CallBack',['rg(2)=get(rg_2,''Value'');']);
% Determination of the parameters
%
x=x0;
y=dy;
pbclose=uicontrol(fig,'Style','push',...
'Units','normalized',...
'Position',[x y 0.15 dy],...
'String','Cansel',...
'CallBack','close(fig);');
pbchange=uicontrol(fig,'Style','push',...
'Units','normalized',...
'Position',[x+1/3,y,0.15 dy],...
'String','Change',...
'CallBack',[psave 'seteco;']);
pbok=uicontrol(fig,'Style','push',...
'Units','normalized',...
'Position',[x+2/3,y,0.15 dy],...
'String','OK',...
'CallBack',[psave 'close(fig);']);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -