Index in position 1 exceeds array bounds

2 views (last 30 days)
Jerry M.
Jerry M. on 1 Apr 2021
Commented: darova on 3 Apr 2021
Hello, I am trying to estimate confidence intervals, but I keep getting the following error when I try to run the structural_console.m file (attached is the relevant part of the code):
Index in position 1 exceeds array bounds (must not exceed 5).
Error in VECM_bootstrap (line 22)
resb=resids(bidx(bb,:),:);
Error in Structural_console (line 28)
[Sigmas,PHIs,mis,Xs]=VECM_bootstrap(GAMMA,eps_hat,X,n_boot);
I can't find out what I specified wrong - so I would really appreciate if someone could help me figure this out. Thank you
  2 Comments
Michael Van de Graaff
Michael Van de Graaff on 1 Apr 2021
Edited: Michael Van de Graaff on 1 Apr 2021
So first of all I had to change dif to diff in VECM. not sure if that's important.
Also, you aren't passing beta_ml to VECM_bootstrap.
Jerry M.
Jerry M. on 2 Apr 2021
Thank you very much! I just realized I forgot to upload dif.m file; I will add beta_ml and see if it works now

Sign in to comment.

Answers (1)

Christopher McCausland
Christopher McCausland on 2 Apr 2021
In your code in line 22 you have resb=resids(bidx(bb,:),:); where as with any index resb=resids(A,B). MATLAB is trying to tell you that the array only has five rows but you are trying to call a non-exsistant row greater than or equal to 6. Try using a breakpoint to assess the value of bidx(bb,:) that makes this happen.
In short if I have array; myarray = zeros(5,4)
myarray =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
you try and call myarray(6,1);
Index in position 1 exceeds array bounds (must not exceed 5)
as you are trying to call 'X' which doesn't exsist
myarray =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
X - - - <- Row 6 does not exsist

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!