Home > . > initvalf_.m

initvalf_

PURPOSE ^

SYNOPSIS ^

function initvalf_(fname,period,varargin)

DESCRIPTION ^

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function initvalf_(fname,period,varargin)
0002   global M_ oo_ options_
0003   global y_start_date ex_start_date 
0004 
0005   if ~isempty(strfind(upper(fname),'.XLS'))
0006     [data,names_v]=xlsread(fname);
0007   else
0008     load(fname);
0009   end
0010   
0011   if length(period) == 2
0012     period = dy_date(period(1),period(2));
0013   end
0014   
0015   if period - max(M_.maximum_lag,M_.maximum_lag) < 0
0016     error(['INITVALF_: not enough data points in database for number of' ...
0017        ' lags. Start later!'])
0018   end
0019   
0020   if nargin > 2
0021     if strcmp(upper(varargin{1}),'SERIES')
0022       series = 1 ;
0023     elseif strcmp(upper(varargin{1}),'MAT')
0024       series = 0 ;
0025     else
0026       error(['INITVALF: unknown option ' varargin{1}])
0027     end
0028   else
0029     series = 0 ;
0030   end
0031   
0032   y1 = floor((period-M_.maximum_lag)/M_.freq);
0033   p1 = period-M_.maximum_lag-M_.freq*y1;
0034   y_start_date(2) = M_.start_date(2) + p1-1;
0035   if y_start_date(2) > M_.freq
0036     y_start_date(2) = y_start_date(2) - M_.freq;
0037     y1 = y1 + 1;
0038   end
0039   y_start_date(1) = M_.start_date(1)+y1;
0040   
0041   y1 = floor((period-M_.maximum_lag)/M_.freq);
0042   p1 = period-M_.maximum_lag-M_.freq*y1;
0043   ex_start_date(2) = M_.start_date(2) + p1-1;
0044   if y_start_date(2) > M_.freq
0045     ex_start_date(2) = ex_start_date(2) - M_.freq;
0046     y1 = y1 + 1;
0047   end
0048   ex_start_date(1) = M_.start_date(1)+y1;
0049   
0050   clear y1, p1;
0051   
0052   options_.initval_file = 1;
0053   oo_.y_simul = [];
0054   oo_.exo_simul = [];
0055   
0056   for i=1:size(M_.endo_names,1)
0057     if series == 1
0058       x = eval([M_.endo_names(i,:) '(period-M_.maximum_lag:period+options_.periods+M_.maximum_lead-1);']);
0059       oo_.y_simul = [oo_.y_simul; x'];
0060     else
0061       k = strmatch(upper(M_.endo_names(i,:)),names_v,'exact');
0062       if isempty(k)
0063     error(['INITVALF: ' M_.endo_names(i,:) ' not found'])
0064       end
0065       x = data(:,k);
0066       oo_.y_simul = [oo_.y_simul; x(period-M_.maximum_lag:period+options_.periods+M_.maximum_lead-1)']; 
0067     end
0068   end
0069   
0070   for i=1:size(M_.exo_name,1)
0071     if series == 1
0072       x = eval([M_.exo_name(i,:) '(period-M_.maximum_lag:period+options_.periods+M_.maximum_lead-1);']);
0073       oo_.exo_simul = [oo_.exo_simul x];
0074     else
0075       k = strmatch(upper(M_.exo_name(i,:)),names_v,'exact');
0076       if isempty(k)
0077     error(['INITVALF: ' M_.exo_name(i,:) ' not found'])
0078       end
0079       x = data(:,k);
0080       oo_.exo_simul = [oo_.exo_simul x(period-M_.maximum_lag:period+options_.periods+M_.maximum_lead-1)]; 
0081     end
0082   end
0083     
0084 % $$$   if any(isnan(oo_.y_simul(:,1))) | any(isnan(oo_.exo_simul(1,:)))
0085 % $$$     error('INITVALF: missing value in first period')
0086 % $$$   end
0087 % $$$
0088 % $$$   if any(isnan(oo_.y_simul(:,end))) | any(isnan(oo_.exo_simul(end,:)))
0089 % $$$     error('INITVALF: missing value in last period')
0090 % $$$   end
0091   
0092 % 8/23/01 MJ changed argument 'FILE' to 'MAT'
0093 
0094 
0095 
0096 
0097 
0098 
0099 
0100 
0101 
0102 
0103

Generated on Fri 16-Jun-2006 09:09:06 by m2html © 2003