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