diff --git a/doc/dynare.texi b/doc/dynare.texi index 91f9f00e16db643732133fec81301e2840208ead..c2bd98616b155d68708c5943d82f9aea0c33f5f5 100644 --- a/doc/dynare.texi +++ b/doc/dynare.texi @@ -6971,11 +6971,14 @@ The first period of data (@i{i.e.} for quarterly data, an integer in [@code{1,4}]). Default: @code{1} @item final_year = @var{INTEGER} -The last year of data. Default: Set to encompass entire dataset +The last year of data. Default: Set to encompass entire dataset. @item final_subperiod = @var{INTEGER} The final period of data (@i{i.e.} for monthly data, an integer in -[@code{1,12}]. Default: Set to encompass entire dataset +[@code{1,12}]. Default: When final_year is also missing, set to +encompass entire dataset; when final_year is indicated, set to the +maximum number of subperiods given the frequency (@i{i.e}. 4 for +quarterly data, 12 for monthly,...). @item datafile = @var{FILENAME} @xref{datafile}. diff --git a/matlab/ms-sbvar/check_datafile_years_assigned.m b/matlab/ms-sbvar/check_datafile_years_assigned.m index 98daa0685728c521431d0bfb56383431c7ff401c..7df9611dc909217610987b5fbde0490856b24481 100644 --- a/matlab/ms-sbvar/check_datafile_years_assigned.m +++ b/matlab/ms-sbvar/check_datafile_years_assigned.m @@ -25,18 +25,20 @@ function [final_year,final_subperiod]=check_datafile_years_assigned(options_) % You should have received a copy of the GNU General Public License % along with Dynare. If not, see <http://www.gnu.org/licenses/>. -final_year = []; -final_subperiod = []; +final_year = options_.ms.final_year; +final_subperiod = options_.ms.final_subperiod; if isempty(options_.ms.initial_year) error('Must set initial_year option'); end -if isempty(options_.ms.final_year) +if isempty(final_year) n = size(options_.data,1); freq = options_.ms.freq; final_subperiod = mod(options_.ms.initial_subperiod+n-2,freq)+1; final_year = options_.ms.initial_year + floor((n-1)/freq); +elseif isempty(final_subperiod) + final_subperiod = options_.ms.freq; end if isempty(options_.datafile) diff --git a/matlab/ms-sbvar/ms_sbvar_setup.m b/matlab/ms-sbvar/ms_sbvar_setup.m index 00263fe3337c70ca0200cf916c2d789dec0097ff..2d6375a2c920ff9af869eef35ec2057db7041c35 100644 --- a/matlab/ms-sbvar/ms_sbvar_setup.m +++ b/matlab/ms-sbvar/ms_sbvar_setup.m @@ -30,11 +30,7 @@ function ms_sbvar_setup(options_) options_.data = read_variables(options_.datafile, ... options_.varobs, [], options_.xls_sheet, options_.xls_range); -[final_year,final_subperiod] = check_datafile_years_assigned(options_); -if ~isempty(final_year) - options_.ms.final_year = final_year; - options_.ms.final_subperiod = final_subperiod; -end +[options_.ms.final_year,options_.ms.final_subperiod] = check_datafile_years_assigned(options_); if options_.ms.upper_cholesky if options_.ms.lower_cholesky diff --git a/matlab/ms-sbvar/sbvar.m b/matlab/ms-sbvar/sbvar.m index 0a6864536e6956bae57733a69cbe7ed551856828..d92d7a6781c8449afd6e91594f7a6ff9ca03937b 100644 --- a/matlab/ms-sbvar/sbvar.m +++ b/matlab/ms-sbvar/sbvar.m @@ -34,11 +34,7 @@ function sbvar(M, options) clean_sbvar_files(); options.data = read_variables(options.datafile,options.varobs,[],options.xls_sheet,options.xls_range); -[final_year,final_subperiod] = check_datafile_years_assigned(options); -if ~isempty(final_year) - options.ms.final_year = final_year; - options.ms.final_subperiod = final_subperiod; -end +[options.ms.final_year,options.ms.final_subperiod] = check_datafile_years_assigned(options); if options.forecast == 0 options.forecast = 4;