149 lines
7.0 KiB
HTML
149 lines
7.0 KiB
HTML
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||
|
"http://www.w3.org/TR/REC-html40/loose.dtd">
|
||
|
<html>
|
||
|
<head>
|
||
|
<title>Description of initvalf_</title>
|
||
|
<meta name="keywords" content="initvalf_">
|
||
|
<meta name="description" content="">
|
||
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||
|
<meta name="generator" content="m2html © 2003 Guillaume Flandin">
|
||
|
<meta name="robots" content="index, follow">
|
||
|
<link type="text/css" rel="stylesheet" href="../m2html.css">
|
||
|
</head>
|
||
|
<body>
|
||
|
<a name="_top"></a>
|
||
|
<div><a href="../index.html">Home</a> > <a href="index.html">.</a> > initvalf_.m</div>
|
||
|
|
||
|
<!--<table width="100%"><tr><td align="left"><a href="../index.html"><img alt="<" border="0" src="../left.png"> Master index</a></td>
|
||
|
<td align="right"><a href="index.html">Index for . <img alt=">" border="0" src="../right.png"></a></td></tr></table>-->
|
||
|
|
||
|
<h1>initvalf_
|
||
|
</h1>
|
||
|
|
||
|
<h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
|
||
|
<div class="box"><strong></strong></div>
|
||
|
|
||
|
<h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
|
||
|
<div class="box"><strong>function initvalf_(fname,period,varargin) </strong></div>
|
||
|
|
||
|
<h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
|
||
|
<div class="fragment"><pre class="comment"></pre></div>
|
||
|
|
||
|
<!-- crossreference -->
|
||
|
<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
|
||
|
This function calls:
|
||
|
<ul style="list-style-image:url(../matlabicon.gif)">
|
||
|
<li><a href="dy_date.html" class="code" title="function y=dy_date(year,period)">dy_date</a> </li></ul>
|
||
|
This function is called by:
|
||
|
<ul style="list-style-image:url(../matlabicon.gif)">
|
||
|
</ul>
|
||
|
<!-- crossreference -->
|
||
|
|
||
|
|
||
|
<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../up.png"></a></h2>
|
||
|
<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function initvalf_(fname,period,varargin)</a>
|
||
|
0002 <span class="keyword">global</span> M_ oo_ options_
|
||
|
0003 <span class="keyword">global</span> y_start_date ex_start_date
|
||
|
0004
|
||
|
0005 <span class="keyword">if</span> ~isempty(strfind(upper(fname),<span class="string">'.XLS'</span>))
|
||
|
0006 [data,names_v]=xlsread(fname);
|
||
|
0007 <span class="keyword">else</span>
|
||
|
0008 load(fname);
|
||
|
0009 <span class="keyword">end</span>
|
||
|
0010
|
||
|
0011 <span class="keyword">if</span> length(period) == 2
|
||
|
0012 period = <a href="dy_date.html" class="code" title="function y=dy_date(year,period)">dy_date</a>(period(1),period(2));
|
||
|
0013 <span class="keyword">end</span>
|
||
|
0014
|
||
|
0015 <span class="keyword">if</span> period - max(M_.maximum_lag,M_.maximum_lag) < 0
|
||
|
0016 error([<span class="string">'INITVALF_: not enough data points in database for number of'</span> <span class="keyword">...</span>
|
||
|
0017 <span class="string">' lags. Start later!'</span>])
|
||
|
0018 <span class="keyword">end</span>
|
||
|
0019
|
||
|
0020 <span class="keyword">if</span> nargin > 2
|
||
|
0021 <span class="keyword">if</span> strcmp(upper(varargin{1}),<span class="string">'SERIES'</span>)
|
||
|
0022 series = 1 ;
|
||
|
0023 <span class="keyword">elseif</span> strcmp(upper(varargin{1}),<span class="string">'MAT'</span>)
|
||
|
0024 series = 0 ;
|
||
|
0025 <span class="keyword">else</span>
|
||
|
0026 error([<span class="string">'INITVALF: unknown option '</span> varargin{1}])
|
||
|
0027 <span class="keyword">end</span>
|
||
|
0028 <span class="keyword">else</span>
|
||
|
0029 series = 0 ;
|
||
|
0030 <span class="keyword">end</span>
|
||
|
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 <span class="keyword">if</span> y_start_date(2) > M_.freq
|
||
|
0036 y_start_date(2) = y_start_date(2) - M_.freq;
|
||
|
0037 y1 = y1 + 1;
|
||
|
0038 <span class="keyword">end</span>
|
||
|
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 <span class="keyword">if</span> y_start_date(2) > M_.freq
|
||
|
0045 ex_start_date(2) = ex_start_date(2) - M_.freq;
|
||
|
0046 y1 = y1 + 1;
|
||
|
0047 <span class="keyword">end</span>
|
||
|
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 <span class="keyword">for</span> i=1:size(M_.endo_names,1)
|
||
|
0057 <span class="keyword">if</span> series == 1
|
||
|
0058 x = eval([M_.endo_names(i,:) <span class="string">'(period-M_.maximum_lag:period+options_.periods+M_.maximum_lead-1);'</span>]);
|
||
|
0059 oo_.y_simul = [oo_.y_simul; x'];
|
||
|
0060 <span class="keyword">else</span>
|
||
|
0061 k = strmatch(upper(M_.endo_names(i,:)),names_v,<span class="string">'exact'</span>);
|
||
|
0062 <span class="keyword">if</span> isempty(k)
|
||
|
0063 error([<span class="string">'INITVALF: '</span> M_.endo_names(i,:) <span class="string">' not found'</span>])
|
||
|
0064 <span class="keyword">end</span>
|
||
|
0065 x = data(:,k);
|
||
|
0066 oo_.y_simul = [oo_.y_simul; x(period-M_.maximum_lag:period+options_.periods+M_.maximum_lead-1)'];
|
||
|
0067 <span class="keyword">end</span>
|
||
|
0068 <span class="keyword">end</span>
|
||
|
0069
|
||
|
0070 <span class="keyword">for</span> i=1:size(M_.exo_name,1)
|
||
|
0071 <span class="keyword">if</span> series == 1
|
||
|
0072 x = eval([M_.exo_name(i,:) <span class="string">'(period-M_.maximum_lag:period+options_.periods+M_.maximum_lead-1);'</span>]);
|
||
|
0073 oo_.exo_simul = [oo_.exo_simul x];
|
||
|
0074 <span class="keyword">else</span>
|
||
|
0075 k = strmatch(upper(M_.exo_name(i,:)),names_v,<span class="string">'exact'</span>);
|
||
|
0076 <span class="keyword">if</span> isempty(k)
|
||
|
0077 error([<span class="string">'INITVALF: '</span> M_.exo_name(i,:) <span class="string">' not found'</span>])
|
||
|
0078 <span class="keyword">end</span>
|
||
|
0079 x = data(:,k);
|
||
|
0080 oo_.exo_simul = [oo_.exo_simul x(period-M_.maximum_lag:period+options_.periods+M_.maximum_lead-1)];
|
||
|
0081 <span class="keyword">end</span>
|
||
|
0082 <span class="keyword">end</span>
|
||
|
0083
|
||
|
0084 <span class="comment">% $$$ if any(isnan(oo_.y_simul(:,1))) | any(isnan(oo_.exo_simul(1,:)))</span>
|
||
|
0085 <span class="comment">% $$$ error('INITVALF: missing value in first period')</span>
|
||
|
0086 <span class="comment">% $$$ end</span>
|
||
|
0087 <span class="comment">% $$$</span>
|
||
|
0088 <span class="comment">% $$$ if any(isnan(oo_.y_simul(:,end))) | any(isnan(oo_.exo_simul(end,:)))</span>
|
||
|
0089 <span class="comment">% $$$ error('INITVALF: missing value in last period')</span>
|
||
|
0090 <span class="comment">% $$$ end</span>
|
||
|
0091
|
||
|
0092 <span class="comment">% 8/23/01 MJ changed argument 'FILE' to 'MAT'</span>
|
||
|
0093
|
||
|
0094
|
||
|
0095
|
||
|
0096
|
||
|
0097
|
||
|
0098
|
||
|
0099
|
||
|
0100
|
||
|
0101
|
||
|
0102
|
||
|
0103</pre></div>
|
||
|
<hr><address>Generated on Fri 16-Jun-2006 09:09:06 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> © 2003</address>
|
||
|
</body>
|
||
|
</html>
|