Fixed bug if LHS no present in datablase.
Removed range on the left hand side.time-shift
parent
ba46992e18
commit
fe4a15e417
|
@ -111,15 +111,15 @@ for i=1:length(eqtags)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if isempty(transform)
|
if isempty(transform)
|
||||||
ds{LHS}(range) = eval(RHS);
|
ds{LHS} = eval(RHS);
|
||||||
else
|
else
|
||||||
tmp = eval(RHS);
|
tmp = eval(RHS);
|
||||||
switch length(transform)
|
switch length(transform)
|
||||||
case 1
|
case 1
|
||||||
if isequal(transform{1}, 'cumsum')
|
if isequal(transform{1}, 'cumsum')
|
||||||
ds{lhs}(range) = cumsum(tmp)+ds{lhs}(range(1)-1).data;
|
ds{lhs} = cumsum(tmp)+ds{lhs}(range(1)-1).data;
|
||||||
else
|
else
|
||||||
ds{lhs}(range) = feval(transform{1}, tmp);
|
ds{lhs} = feval(transform{1}, tmp);
|
||||||
end
|
end
|
||||||
case 2
|
case 2
|
||||||
if isequal(transform{2}, 'cumsum')
|
if isequal(transform{2}, 'cumsum')
|
||||||
|
@ -128,25 +128,25 @@ for i=1:length(eqtags)
|
||||||
for t = 1:length(range)
|
for t = 1:length(range)
|
||||||
t2(t) = 2*ds{lhs}(range(t)-1).data-ds{lhs}(range(t)-2).data+tmp(range(t)).data;
|
t2(t) = 2*ds{lhs}(range(t)-1).data-ds{lhs}(range(t)-2).data+tmp(range(t)).data;
|
||||||
end
|
end
|
||||||
ds{lhs}(range) = dseries(t2, range(1));
|
ds{lhs} = dseries(t2, range(1));
|
||||||
else
|
else
|
||||||
t2 = zeros(length(range), 1);
|
t2 = zeros(length(range), 1);
|
||||||
for t = 1:length(range)
|
for t = 1:length(range)
|
||||||
t1 = feval(transform{2}, log(ds{lhs}(range(t)-1))+tmp(range(t)).data );
|
t1 = feval(transform{2}, log(ds{lhs}(range(t)-1))+tmp(range(t)).data );
|
||||||
t2(t) = t1.data;
|
t2(t) = t1.data;
|
||||||
end
|
end
|
||||||
ds{lhs}(range) = dseries(t2, range(1));
|
ds{lhs} = dseries(t2, range(1));
|
||||||
% $$$ % The commented version below is more efficient but the discrepancy with what is returned by simulating
|
% $$$ % The commented version below is more efficient but the discrepancy with what is returned by simulating
|
||||||
% $$$ % the model is much bigger (see pac/trend-component-28/example4.mod).
|
% $$$ % the model is much bigger (see pac/trend-component-28/example4.mod).
|
||||||
% $$$ tmp = cumsum(tmp)+log(ds{lhs}(range(1)-1).data);
|
% $$$ tmp = cumsum(tmp)+log(ds{lhs}(range(1)-1).data);
|
||||||
% $$$ ds{lhs}(range) = feval(transform{2}, tmp);
|
% $$$ ds{lhs} = feval(transform{2}, tmp);
|
||||||
end
|
end
|
||||||
case 3
|
case 3
|
||||||
t2 = zeros(length(range), 1);
|
t2 = zeros(length(range), 1);
|
||||||
for t = 1:length(range)
|
for t = 1:length(range)
|
||||||
t2(t) = feval(transform{3}, 2*log(ds{lhs}(range(t)-1).data)-log(ds{lhs}(range(t)-2).data)+tmp(range(t)).data);
|
t2(t) = feval(transform{3}, 2*log(ds{lhs}(range(t)-1).data)-log(ds{lhs}(range(t)-2).data)+tmp(range(t)).data);
|
||||||
end
|
end
|
||||||
ds{lhs}(range) = dseries(t2, range(1));
|
ds{lhs} = dseries(t2, range(1));
|
||||||
otherwise
|
otherwise
|
||||||
error('More than 3 unary ops. in LHS not implemented.')
|
error('More than 3 unary ops. in LHS not implemented.')
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue