Error using sub2ind out of range subscript

10 views (last 30 days)
Bharadwaj Gandepalli
Bharadwaj Gandepalli on 26 Mar 2016
Edited: dpb on 26 Mar 2016
clear all ;
global theta sigma tau rho
theta =0.9563E0 ; sigma = 1.0243E0 ; tau =0.05803E0 ; rho= -0.04266E0 ;
n_star1=zeros(3,1); n_star2= zeros(3,1); b_star1=zeros(3,1);
b_star2=zeros(3,1);m_star1=zeros(3,1);m_star2=zeros(1,3);
a_star1=zeros(3,1);a_star2=zeros(3,1);kappa_1=1;kappa_2=-1;
U1(1,1)= theta ; U1(1,2)= rho ;U1(1,3)= rho; U1(2,1)=U1(1,2);
U1(2,2)= sigma ; U1(2,3) = tau; U1(3,1)=U1(1,3);
U1(3,2)=U1(2,3); U1(3,3)= sigma;
U2(1,1)= theta; U2(1,2)= -rho; U2(1,3)= -rho; U2(2,1)=U2(1,2);
U2(2,2)= sigma ; U2(2,3) = tau; U2(3,1)=U2(1,3);
U2(3,2)=U2(2,3); U2(3,3)= sigma;
U3(1,1)= theta; U3(1,2)= -rho; U3(1,3)= rho; U3(2,1)=U3(1,2);
U3(2,2)= sigma ; U3(2,3) = -tau; U3(3,1)=U3(1,3);
U3(3,2)=U3(2,3); U3(3,3)= sigma;
U4(1,1)= theta; U4(1,2)= rho; U4(1,3)= -rho; U4(2,1)=U4(1,2);
U4(2,2)= sigma ; U4(2,3) = -tau; U4(3,1)=U4(1,3);
U4(3,2)=U4(2,3); U4(3,3)= sigma;
U5(1,1)= sigma; U5(1,2)= rho; U5(1,3)= tau; U5(2,1)=U5(1,2);
U5(2,2)= theta ; U5(2,3) = rho; U5(3,1)=U5(1,3);
U5(3,2)=U5(2,3); U5(3,3)= sigma;
U6(1,1)= sigma; U6(1,2)= -rho; U6(1,3)= tau; U6(2,1)=U6(1,2);
U6(2,2)= theta ; U6(2,3) = -rho; U6(3,1)=U6(1,3);
U6(3,2)=U6(2,3); U6(3,3)= sigma;
U7(1,1)= sigma; U7(1,2)= -rho; U7(1,3)= -tau; U7(2,1)=U7(1,2);
U7(2,2)= theta ; U7(2,3) = rho; U7(3,1)=U7(1,3);
U7(3,2)=U7(2,3); U7(3,3)= sigma;
U8(1,1)= sigma; U8(1,2)= rho; U8(1,3)= -tau; U8(2,1)=U8(1,2);
U8(2,2)= theta ; U8(2,3) = -rho; U8(3,1)=U8(1,3);
U8(3,2)=U8(2,3); U8(3,3)= sigma;
U9(1,1)= sigma; U9(1,2)= tau; U9(1,3)= rho; U9(2,1)=U9(1,2);
U9(2,2)= sigma ; U9(2,3) = rho; U9(3,1)=U9(1,3);
U9(3,2)=U9(2,3); U9(3,3)= theta;
U10(1,1)= sigma; U10(1,2)= tau; U10(1,3)= -rho; U10(2,1)=U10(1,2);
U10(2,2)= sigma ; U10(2,3) = -rho; U10(3,1)=U10(1,3);
U10(3,2)=U10(2,3); U10(3,3)= theta;
U11(1,1)= sigma; U11(1,2)= -tau; U11(1,3)= rho; U11(2,1)=U11(1,2);
U11(2,2)= sigma ; U11(2,3) = -rho; U11(3,1)=U11(1,3);
U11(3,2)=U11(2,3); U11(3,3)= theta;
U12(1,1)= sigma; U12(1,2)= -tau; U12(1,3)= -rho; U12(2,1)=U12(1,2);
U12(2,2)= sigma ; U12(2,3) = rho; U12(3,1)=U12(1,3);
U12(3,2)=U12(2,3); U12(3,3)= theta;
C1= inv(U1)*U3*U3*inv(U1);
[V, N]=eig(C1);
lambda_3= N(1,1);lambda_2= N(2,2); lambda_1= N(3,3); *% Error was being shown in this line*
e3 = V(1:3,1) ;e2=V(1:3,2) ;e1=V(1:3,3);
Also, explain me the meaning of this error :
Error in sym/subsref (line 766) R_tilde = sub2ind(size(L), Idx.subs{:});

Answers (2)

Ced
Ced on 26 Mar 2016
Your code runs without error for me.
Why do you have the variables declared as global? This is something to avoid whenever possible (aka always), and I don't see a reason to have global variables here.
Also, the error seems to come from a symbolic call, but I don't see any symbolic variables in that code?
Try to copy the script to some other location ( to check if you have overshadowing functions that could cause the problem ), and remove the global declaration, and try running the code again.

dpb
dpb on 26 Mar 2016
Edited: dpb on 26 Mar 2016
Ugleee code to the extreme... :(
Format your code; don't use run-on continuation lines wildly.
One way to build the initial matrices that is at least a little bit more readable and simpler to debug if nothing else would be
>> U1=diag([theta sigma sigma],0) + ...
diag([rho tau],-1) + ...
diag(rho,-2); % load lower triagonal
>> U1=U1+tril(U1,-1).' % load upper triagonal from lower transpose
U1 =
0.9563 -0.0427 -0.0427
-0.0427 1.0243 0.0580
-0.0427 0.0580 1.0243
>>
There is no indexing problem on the line marked; the ind2sub message is from a symbolic toolbox function call and there's no symbolic in sight in the above code snippet.

Categories

Find more on Function Creation 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!