- go to function drawimp(vt, f1)
- in the line 6, where you read data for IRF fuction in commad mimpr = xlsread('tvpvar_imp.xlsx'), specify the Sheet1 (like this:mimpr = xlsread('tvpvar_imp.xlsx', 'Sheet1'))your data are in. Probably you have some sheet in your Excel (in some other language) before the data to IRF are, and the Matlab loads the empty table.
TVP - VAR Package Nakajima (2011)
34 views (last 30 days)
Show older comments
Hi,
I used Nakajima's code but I get an error when plotting impulse response functions. Can someone who works with the code help me? or help me solve it?
The exact error is : Index in position 2 exceeds array bounds.
Psdt.
I do not modify the code.
function [] = drawimp(vt, fldraw)
global m_ns m_nk m_nl m_asvar;
ns = m_ns;
nk = m_nk;
nl = m_nl;
mimpr = xlsread('tvpvar_imp.xlsx');
mimpm = mimpr(:, 3:end);
nimp = size(mimpm, 1) / m_ns;
mline = [0 .5 0; 0 0 1; 1 0 0; 0 .7 .7];
vline = {':', '--', '-', '-.'};
nline = size(vt, 2);
figure
for i = 1 : nk
for j = 1 : nk
id = (i-1)*nk + j;
mimp = reshape(mimpm(:, id), nimp, ns)'; %% Here the error
subplot(nk, nk, id);
if fldraw == 1
for k = 1 : nline
plot(mimp(:, vt(k)+1), char(vline(k)), ...
'Color', mline(k, :))
hold on
end
vax = axis;
axis([nl+1 ns+1 vax(3:4)])
if vax(3) * vax(4) < 0
line([nl+1, ns+1], [0, 0], 'Color', ones(1,3)*0.6)
end
if id == 1
vlege = ['-period ahead'];
for l = 2 : nline
vlege = [vlege; '-period '];
end
legend([num2str(vt') vlege])
end
else
for k = 1 : nline
plot(0:nimp-1, mimp(vt(k), :), char(vline(k)), ...
'Color', mline(k, :))
hold on
end
vax = axis;
axis([0 nimp-1 vax(3:4)])
if vax(3) * vax(4) < 0
line([0, nimp-1], [0, 0], 'Color', ones(1,3)*0.6)
end
if id == 1
vlege = ['t='];
for l = 2 : nline
vlege = [vlege; 't='];
end
legend([vlege num2str(vt')])
end
end
hold off
title(['$\varepsilon_{', char(m_asvar(i)), ...
'}\uparrow\ \rightarrow\ ', ...
char(m_asvar(j)), '$'], 'interpreter', 'latex')
end
end
0 Comments
Answers (1)
Tomas Oles
on 31 Jul 2021
Edited: Tomas Oles
on 31 Jul 2021
Hi Anthony, I have faced the same problem, try this solution:
Hope it help, Tomas.
0 Comments
See Also
Categories
Find more on Language Fundamentals in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!