Cosmetic changes.
parent
29a1e3d015
commit
a6c7de4f08
|
@ -1,13 +1,12 @@
|
||||||
function plot_contributions(tagn, tagv, dseriesdata, params)
|
function plot_contributions(tagn, tagv, ds, params)
|
||||||
% function plot_contributions(tagn, tagv, dseriesdata, params)
|
|
||||||
% Return the lhs, rhs of an equation and the line it was defined
|
% Plots the contribution to the lhs variable of the rhs variables in an equation.
|
||||||
% on given its tag
|
|
||||||
%
|
%
|
||||||
% INPUTS
|
% INPUTS
|
||||||
% tagn string tag name
|
% - tagn [string] Equation tag name
|
||||||
% tagv string tag value
|
% - tagv [string] Equation tag value
|
||||||
% dseriesdata matrix nobs x n endogenous in equation
|
% - ds [dseries] Object containing all the variables (exogenous and endogenous) appearing in the equation.
|
||||||
% params struct params.param_name = param_value
|
% - params [struct] parameter values
|
||||||
%
|
%
|
||||||
% OUTPUTS
|
% OUTPUTS
|
||||||
% None
|
% None
|
||||||
|
@ -32,7 +31,7 @@ function plot_contributions(tagn, tagv, dseriesdata, params)
|
||||||
% You should have received a copy of the GNU General Public License
|
% You should have received a copy of the GNU General Public License
|
||||||
% along with Dynare. If not, see <http://www.gnu.org/licenses/>.
|
% along with Dynare. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
global M_;
|
global M_
|
||||||
|
|
||||||
jsonfile = [M_.fname '_original.json'];
|
jsonfile = [M_.fname '_original.json'];
|
||||||
if exist(jsonfile, 'file') ~= 2
|
if exist(jsonfile, 'file') ~= 2
|
||||||
|
@ -44,9 +43,9 @@ jsonmodel = loadjson(jsonfile);
|
||||||
jsonmodel = jsonmodel.model;
|
jsonmodel = jsonmodel.model;
|
||||||
[lhs, rhs, ~] = getEquationByTag(jsonmodel, tagn, tagv);
|
[lhs, rhs, ~] = getEquationByTag(jsonmodel, tagn, tagv);
|
||||||
|
|
||||||
% replace variables with dseriesdata.variablename
|
% replace variables with ds.variablename
|
||||||
for i = 1:length(dseriesdata.name)
|
for i = 1:length(ds.name)
|
||||||
rhs = regexprep(rhs, ['([\s\+\-\*\/\^]{1}|^)(' dseriesdata{i}.name{:} ')([\s\(\+\-\*\/\^|$]{1})'], '$1dseriesdata.$2$3');
|
rhs = regexprep(rhs, ['([\s\+\-\*\/\^]{1}|^)(' ds{i}.name{:} ')([\s\(\+\-\*\/\^|$]{1})'], '$1ds.$2$3');
|
||||||
end
|
end
|
||||||
fields = fieldnames(params);
|
fields = fieldnames(params);
|
||||||
|
|
||||||
|
@ -55,24 +54,25 @@ for i = 1:length(fields)
|
||||||
end
|
end
|
||||||
|
|
||||||
% call function with all variable values
|
% call function with all variable values
|
||||||
contribution = zeros(dseriesdata.nobs, dseriesdata.vobs + 1);
|
contribution = zeros(ds.nobs, ds.vobs + 1);
|
||||||
rhseval = eval(rhs);
|
rhseval = eval(rhs);
|
||||||
contribution(:, 1) = rhseval.data;
|
contribution(:, 1) = rhseval.data;
|
||||||
|
|
||||||
dseriesdatabak = dseriesdata;
|
dsbak = ds;
|
||||||
dseriesdatazero = dseries(zeros(dseriesdata.nobs, dseriesdata.vobs), ...
|
dszero = dseries(zeros(ds.nobs, ds.vobs), ...
|
||||||
dseriesdata.firstdate, ...
|
ds.firstdate, ...
|
||||||
dseriesdata.name);
|
ds.name);
|
||||||
for i = 1:dseriesdata.vobs
|
|
||||||
dseriesdata = dseriesdatazero;
|
for i = 1:ds.vobs
|
||||||
dseriesdata{dseriesdatabak.name{i}} = dseriesdatabak{dseriesdatabak.name{i}};
|
ds = dszero;
|
||||||
|
ds{dsbak.name{i}} = dsbak{dsbak.name{i}};
|
||||||
rhseval = eval(rhs);
|
rhseval = eval(rhs);
|
||||||
contribution(:, i+1) = rhseval.data;
|
contribution(:, i+1) = rhseval.data;
|
||||||
end
|
end
|
||||||
|
|
||||||
figure('Name', lhs);
|
figure('Name', lhs);
|
||||||
plot(1:dseriesdata.nobs, contribution);
|
plot(1:ds.nobs, contribution);
|
||||||
seriesnames = dseriesdata.name;
|
seriesnames = ds.name;
|
||||||
legend('All Endogenous', seriesnames{:});
|
legend('All Endogenous', seriesnames{:});
|
||||||
|
|
||||||
end
|
end
|
Loading…
Reference in New Issue