Error using sub2ind out of range subscript

조회 수: 7 (최근 30일)
Bharadwaj Gandepalli
Bharadwaj Gandepalli 2016년 3월 26일
편집: dpb 2016년 3월 26일
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{:});

답변 (2개)

Ced
Ced 2016년 3월 26일
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 2016년 3월 26일
편집: dpb 2016년 3월 26일
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.

카테고리

Help CenterFile Exchange에서 Function Creation에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by