-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcompileOdeData.m
66 lines (52 loc) · 2.58 KB
/
compileOdeData.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
function Data = compileOdeData(Data)
GuildInfo = Data.GuildInfo;
% New variables resized to avoid unnecessary computation and memory usage
Data.c = vertcat(Data.Guilds(GuildInfo.iProducerGuilds).c);
Data.r = vertcat(Data.Guilds(GuildInfo.iProducerGuilds).igr);
%Data.r = vertcat(Data.Guilds(GuildInfo.iProducerGuilds).newigrEx);
Data.bx = vertcat(Data.Guilds(GuildInfo.iConsumerGuilds).bx);
Data.ax = vertcat(Data.Guilds(GuildInfo.iFeederGuilds).ax);
Data.x = vertcat(Data.Guilds(GuildInfo.iConsumerGuilds).mbr);
Data.omega = Data.omega(GuildInfo.iFeederGuilds,GuildInfo.iFoodGuilds);
%Data.B0 = Data.B0(GuildInfo.iFeederGuilds,GuildInfo.iFoodGuilds);%1500
%Data.B0 = Data.B0_1(GuildInfo.iFeederGuilds,GuildInfo.iFoodGuilds); %all 1500 except by birds
Data.B0 = Data.B0_6(GuildInfo.iFeederGuilds,GuildInfo.iFoodGuilds); %B0 by TL
%Data.B0 = Data.B0_opt(GuildInfo.iFeederGuilds,GuildInfo.iFoodGuilds); %randoms B0
%Data.B0 = Data.B0_3(GuildInfo.iFeederGuilds,GuildInfo.iFoodGuilds);
%%Ineficiencia en el consumo solo para herbivoros
Data.communityMatrix = Data.communityMatrix(GuildInfo.iFeederGuilds,GuildInfo.iFoodGuilds);
Data.d = Data.d(GuildInfo.iFeederGuilds,GuildInfo.iFoodGuilds);
%Data.d = Data.d_1(GuildInfo.iFeederGuilds,GuildInfo.iFoodGuilds); %d=corrected
Data.q = Data.q(GuildInfo.iFeederGuilds,GuildInfo.iFoodGuilds);
Data.e = Data.e(GuildInfo.iFeederGuilds,GuildInfo.iFoodGuilds);
Data.y = Data.y(GuildInfo.iFeederGuilds,GuildInfo.iFoodGuilds);
Data.B0_pow_q = Data.B0.^Data.q;
Data.B0_pow_q = Data.B0_pow_q.*Data.communityMatrix;
switch Data.K.type
case 'Constant'
%%%K = repmat(Data.K.mean,1,Data.nYearsFwd); this is the original
%%%but with the changes MATLAB suggest to me that change to
%%%repmat(A,[M,N])
K = repmat(Data.K.mean,[1,Data.nYearsFwd]);
case 'White noise'
K = zeros(1,Data.nYearsFwd);
for i = 1:Data.nYearsFwd
while K(i) <= 0
K(i) = normrnd(Data.K.mean,Data.K.standard_deviation,1,1);
end
end
case 'AR(1)'
K = zeros(1,Data.nYearsFwd);
phi = Data.K.autocorrelation;
c = Data.K.mean*(1-phi);
sigma_e = Data.K.standard_deviation*sqrt(1-phi^2);
while K(1) <= 0
K(1) = normrnd(Data.K.mean,Data.K.standard_deviation,1,1);
for i = 2:Data.nYearsFwd
while K(i) <= 0
K(i) = c + phi*K(i-1) + normrnd(0,sigma_e,1,1);
end
end
end
end
Data.K.values = K;