Index in position 2 exceeds array bounds. Index must not exceed 1.
7 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
How to fix errors? "Index in position 2 exceeds array bounds. Index must not exceed 1".
Thanks for everyone's help
Error in VU_MSSP_2024_QUYDAO (line 72)
Xv_2(s,i+1)=-inv(A_0(4,4))*(A_0(4,1)*Xh(s,i+1)+A_0(4,2)*Xeh(s,i+1)+A_0(4,3)*Xv_1(s,i+1)+A_0(4,5)*Xev_1(s,i+1)+A_0(4,6)*Xev_2(s,i+1)+B_0(4,1)*5*exp(-0.1*(s+i+1))*sin(i+s+1));
clc
clear all;
close all;
I_1=[1];
I_2=[1 0;0 1];
Eh=[1];
Ev=[1 0;0 0];
E=blkdiag(Eh,Ev);
E_c=blkdiag(Eh,Eh,Ev,Ev);
Ih=[1];
Iv=[1 0;0 1];
J=[Ih zeros(1,5);zeros(2,2) Iv zeros(2,2);0 Ih zeros(1,4); zeros(2,2) zeros(2,2) Iv];
A=[0.04 -0.01 0.3;0.01 0.9 0.3;0.15 0.01 -0.05];
H=[-0.02 0.01 0.02;0.05 -0.01 0.05;0.47 0.01 2.02];
C=[0.05 -0.02 0.05;-0.05 0.01 0.08];
B_u=[0.01;0.02;-0.01];
B_w=[-0.02;0.05;0.04];
D_u=[0.05;0.01];
D_w=[0.02;-0.03];
A_c=blkdiag(A,A);
B_wc=[B_w;B_w];
B_c=[B_u -B_u;zeros(3,1) zeros(3,1)];
H_c=[zeros(3,3) zeros(3,3); zeros(3,3) H];
N_E=[zeros(1,6);zeros(1,6);zeros(1,6);1 1 1 1 1 1;zeros(1,6);1 1 1 -1 1 1];
D_1=[D_u -D_u];
%--------------------
a=0.8;
gamma=4;
K=[ -0.4957 -9.2860 -4.8612];
L=[ -1726 -1094 43;950 603 -24;-18404 -11652 457];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
A_0=J'*[A+B_u*K -B_u*K;zeros(3,3) A-L*H]*J;
B_0=J'*[B_w;B_w];
C_0=[C+D_u*K -D_u*K]*J;
n=80;
v=zeros(1,n);
w=zeros(1,n);
Xh=zeros(n,n); Xeh=zeros(n,n); Xv_1=zeros(n,n);Xv_2=zeros(n,n);Ev_1=zeros(n,n);Xev_2=zeros(n,n);Z=zeros(n,n);U=zeros(n,n);
for i=1:1:n-1
Xh(1,i)=0;
Xeh(1,i)=0;
end
for i=1:1:n-1
Xv_1(i,1)=0;
Xv_2(i,1)=0;
Xev_1(i,1)=0;
Xev_2(i,1)=0;
end
x1=zeros(6,1);x0=zeros(6,1);xc=zeros(6,1);
for i=1:1:n
v(1,i)=i;
w(1,i)=i;
end
for s=1:1:n
for i=1:1:n-1
x0(1,1)=Xh(s,i);x0(2,1)=Xeh(s,i);x0(3,1)=Xv_1(s,i);x0(4,1)=Xv_2(s,i);x0(5,1)=Xev_1(s,i);x0(6,1)=Xev_2(s,i);
x1=A_0*x0+B_0*5*exp(-0.1*(s+i))*sin(i+s);
Xh(s+1,i)=A_0(1,1)*Xh(s,i)+A_0(1,2)*Xeh(s,i)+A_0(1,3)*Xv_1(s,i)+A_0(1,4)*Xv_2(s,i)+A_0(1,5)*Xev_1(s,i)+A_0(1,6)*Xev_2(s,i)+B_0(1,1)*5*exp(-0.1*(s+i))*sin(i+s);
Xeh(s+1,i)=A_0(2,1)*Xh(s,i)+A_0(2,2)*Xeh(s,i)+A_0(2,3)*Xv_1(s,i)+A_0(2,4)*Xv_2(s,i)+A_0(2,5)*Xev_1(s,i)+A_0(2,6)*Xev_2(s,i)+B_0(2,1)*5*exp(-0.1*(s+i))*sin(i+s);
Xv_1(s,i+1)=A_0(3,1)*Xh(s,i)+A_0(3,2)*Xeh(s,i)+A_0(3,3)*Xv_1(s,i)+A_0(3,4)*Xv_2(s,i)+A_0(3,5)*Xev_1(s,i)+A_0(3,6)*Xev_2(s,i)+B_0(3,1)*5*exp(-0.1*(s+i))*sin(i+s);
Xv_2(s,i+1)=-inv(A_0(4,4))*(A_0(4,1)*Xh(s,i+1)+A_0(4,2)*Xeh(s,i+1)+A_0(4,3)*Xv_1(s,i+1)+A_0(4,5)*Xev_1(s,i+1)+A_0(4,6)*Xev_2(s,i+1)+B_0(4,1)*5*exp(-0.1*(s+i+1))*sin(i+s+1));
Xev_1(s,i+1)=A_0(5,1)*Xh(s,i)+A_0(5,2)*Xeh(s,i)+A_0(5,3)*Xv_1(s,i)+A_0(5,4)*Xv_2(s,i)+A_0(5,5)*Xev_1(s,i)+A_0(5,6)*Xev_2(s,i)+B_0(5,1)*5*exp(-0.1*(s+i))*sin(i+s);
Xev_2(s,i+1)=-inv(A_0(6,6))*(A_0(6,1)*Xh(s,i+1)+A_0(6,2)*Xeh(s,i+1)+A_0(6,3)*Xv_1(s,i+1)+A_0(6,4)*Xv_2(s,i+1)+A_0(6,5)*Xev_1(s,i+1)+B_0(6,1)*5*exp(-0.1*(s+i+1))*sin(i+s+1));
Z(s,i)=norm(C_0*x0+D_w*5*exp(-0.1*(s+i))*sin(i+s));
U(s,i)=K*([Xh(s,i);Xv_1(s,i);Xv_2(s,i)]-[Xeh(s,i);Xev_1(s,i);Xev_2(s,i)]);
end
end
for i=1:1:n-1
for s=1:1:n-1
x0(1,1)=Xh(s,i);x0(2,1)=Xeh(s,i);x0(3,1)=Xv_1(s,i);x0(4,1)=Xv_2(s,i);x0(5,1)=Xev_1(s,i);x0(6,1)=Xev_2(s,i);
x1=A_0*x0+B_0*5*exp(-0.1*(s+i))*sin(i+s);
Xh(s+1,i)=A_0(1,1)*Xh(s,i)+A_0(1,2)*Xeh(s,i)+A_0(1,3)*Xv_1(s,i)+A_0(1,4)*Xv_2(s,i)+A_0(1,5)*Xev_1(s,i)+A_0(1,6)*Xev_2(s,i)+B_0(1,1)*5*exp(-0.1*(s+i))*sin(i+s);
Xeh(s+1,i)=A_0(2,1)*Xh(s,i)+A_0(2,2)*Xeh(s,i)+A_0(2,3)*Xv_1(s,i)+A_0(2,4)*Xv_2(s,i)+A_0(2,5)*Xev_1(s,i)+A_0(2,6)*Xev_2(s,i)+B_0(2,1)*5*exp(-0.1*(s+i))*sin(i+s);
Xv_1(s,i+1)=A_0(3,1)*Xh(s,i)+A_0(3,2)*Xeh(s,i)+A_0(3,3)*Xv_1(s,i)+A_0(3,4)*Xv_2(s,i)+A_0(3,5)*Xev_1(s,i)+A_0(3,6)*Xev_2(s,i)+B_0(3,1)*5*exp(-0.1*(s+i))*sin(i+s);
Xv_2(s,i+1)=-inv(A_0(4,4))*(A_0(4,1)*Xh(s,i+1)+A_0(4,2)*Xeh(s,i+1)+A_0(4,3)*Xv_1(s,i+1)+A_0(4,5)*Xev_1(s,i+1)+A_0(4,6)*Xev_2(s,i+1)+B_0(4,1)*5*exp(-0.1*(s+i+1))*sin(i+s+1));
Xev_1(s,i+1)=A_0(5,1)*Xh(s,i)+A_0(5,2)*Xeh(s,i)+A_0(5,3)*Xv_1(s,i)+A_0(5,4)*Xv_2(s,i)+A_0(5,5)*Xev_1(s,i)+A_0(5,6)*Xev_2(s,i)+B_0(5,1)*5*exp(-0.1*(s+i))*sin(i+s);
Xev_2(s,i+1)=-inv(A_0(6,6))*(A_0(6,1)*Xh(s,i+1)+A_0(6,2)*Xeh(s,i+1)+A_0(6,3)*Xv_1(s,i+1)+A_0(6,4)*Xv_2(s,i+1)+A_0(6,5)*Xev_1(s,i+1)+B_0(6,1)*5*exp(-0.1*(s+i+1))*sin(i+s+1));
Z(s,i)=norm(C_0*x0+D_w*5*exp(-0.1*(s+i))*sin(i+s));
U(s,i)=K*([Xh(s,i);Xv_1(s,i);Xv_2(s,i)]-[Xeh(s,i);Xev_1(s,i);Xev_2(s,i)]);
end
end
figure(1)
surf(v,w,Xh)
xlabel('i');
ylabel('j');
zlabel('x^h(i,j)');
%axis([0 100 0 100 -0.15 0.06])
hold on;
figure(2)
surf(v,w,Xeh)
xlabel('i');
ylabel('j');
zlabel('x_e^h(i,j)');
%axis([0 100 0 100 -0.5 0.1])
hold on;
figure(3)
surf(v,w,Xv_1)
xlabel('i');
ylabel('j');
zlabel('x_1^v(i,j)');
hold on;
figure(4)
surf(v,w,Xv_2)
xlabel('i');
ylabel('j');
zlabel('x_2^v(i,j)');
hold on;
figure(5)
surf(v,w,Xev_1)
xlabel('i');
ylabel('j');
zlabel('x_{e1}^v(i,j)');
hold on;
figure(6)
surf(v,w,Xev_2)
xlabel('i');
ylabel('j');
zlabel('x_{e2}^v(i,j)');
%axis([0 100 0 100 -0.8 0.2])
hold on;
figure(7)
surf(v,w,Z)
xlabel('i');
ylabel('j');
zlabel('||z(i,j)||');
%axis([0 100 0 100 -0.8 0.2])
hold on;
figure(8)
surf(v,w,U)
xlabel('i');
ylabel('j');
zlabel('u(i,j)|');
%axis([0 100 0 100 -0.8 0.2])
hold on;
"
0 Commenti
Risposta accettata
Più risposte (1)
recent works
il 22 Giu 2024
Try the follwoing one it is error free
clc
clear all;
close all;
I_1=[1];
I_2=[1 0;0 1];
Eh=[1];
Ev=[1 0;0 0];
E=blkdiag(Eh,Ev);
E_c=blkdiag(Eh,Eh,Ev,Ev);
Ih=[1];
Iv=[1 0;0 1];
J=[Ih zeros(1,5);zeros(2,2) Iv zeros(2,2);0 Ih zeros(1,4); zeros(2,2) zeros(2,2) Iv];
A=[0.04 -0.01 0.3;0.01 0.9 0.3;0.15 0.01 -0.05];
H=[-0.02 0.01 0.02;0.05 -0.01 0.05;0.47 0.01 2.02];
C=[0.05 -0.02 0.05;-0.05 0.01 0.08];
B_u=[0.01;0.02;-0.01];
B_w=[-0.02;0.05;0.04];
D_u=[0.05;0.01];
D_w=[0.02;-0.03];
A_c=blkdiag(A,A);
B_wc=[B_w;B_w];
B_c=[B_u -B_u;zeros(3,1) zeros(3,1)];
H_c=[zeros(3,3) zeros(3,3); zeros(3,3) H];
N_E=[zeros(1,6);zeros(1,6);zeros(1,6);1 1 1 1 1 1;zeros(1,6);1 1 1 -1 1 1];
D_1=[D_u -D_u];
%--------------------
a=0.8;
gamma=4;
K=[ -0.4957 -9.2860 -4.8612];
L=[ -1726 -1094 43;950 603 -24;-18404 -11652 457];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
A_0=J'*[A+B_u*K -B_u*K;zeros(3,3) A-L*H]*J;
B_0=J'*[B_w;B_w];
C_0=[C+D_u*K -D_u*K]*J;
n=80;
v=zeros(1,n);
w=zeros(1,n);
Xh=zeros(n,n); Xeh=zeros(n,n); Xv_1=zeros(n,n); Xv_2=zeros(n,n); Xev_1=zeros(n,n); Xev_2=zeros(n,n); Z=zeros(n,n); U=zeros(n,n);
for i=1:1:n
Xh(1,i)=0;
Xeh(1,i)=0;
end
for i=1:1:n
Xv_1(i,1)=0;
Xv_2(i,1)=0;
Xev_1(i,1)=0;
Xev_2(i,1)=0;
end
x1=zeros(6,1); x0=zeros(6,1); xc=zeros(6,1);
for i=1:1:n
v(1,i)=i;
w(1,i)=i;
end
for s=1:1:n-1
for i=1:1:n-1
x0(1,1)=Xh(s,i);
x0(2,1)=Xeh(s,i);
x0(3,1)=Xv_1(s,i);
x0(4,1)=Xv_2(s,i);
x0(5,1)=Xev_1(s,i);
x0(6,1)=Xev_2(s,i);
x1=A_0*x0+B_0*5*exp(-0.1*(s+i))*sin(i+s);
Xh(s+1,i)=A_0(1,1)*Xh(s,i) + A_0(1,2)*Xeh(s,i) + A_0(1,3)*Xv_1(s,i) + A_0(1,4)*Xv_2(s,i) + A_0(1,5)*Xev_1(s,i) + A_0(1,6)*Xev_2(s,i) + B_0(1,1)*5*exp(-0.1*(s+i))*sin(i+s);
Xeh(s+1,i)=A_0(2,1)*Xh(s,i) + A_0(2,2)*Xeh(s,i) + A_0(2,3)*Xv_1(s,i) + A_0(2,4)*Xv_2(s,i) + A_0(2,5)*Xev_1(s,i) + A_0(2,6)*Xev_2(s,i) + B_0(2,1)*5*exp(-0.1*(s+i))*sin(i+s);
Xv_1(s,i+1)=A_0(3,1)*Xh(s,i) + A_0(3,2)*Xeh(s,i) + A_0(3,3)*Xv_1(s,i) + A_0(3,4)*Xv_2(s,i) + A_0(3,5)*Xev_1(s,i) + A_0(3,6)*Xev_2(s,i) + B_0(3,1)*5*exp(-0.1*(s+i))*sin(i+s);
Xv_2(s,i+1)=-inv(A_0(4,4))*(A_0(4,1)*Xh(s,i+1) + A_0(4,2)*Xeh(s,i+1) + A_0(4,3)*Xv_1(s,i+1) + A_0(4,5)*Xev_1(s,i+1) + A_0(4,6)*Xev_2(s,i+1) + B_0(4,1)*5*exp(-0.1*(s+i+1))*sin(i+s+1));
Xev_1(s,i+1)=A_0(5,1)*Xh(s,i) + A_0(5,2)*Xeh(s,i) + A_0(5,3)*Xv_1(s,i) + A_0(5,4)*Xv_2(s,i) + A_0(5,5)*Xev_1(s,i) + A_0(5,6)*Xev_2(s,i) + B_0(5,1)*5*exp(-0.1*(s+i))*sin(i+s);
Xev_2(s,i+1)=-inv(A_0(6,6))*(A_0(6,1)*Xh(s,i+1) + A_0(6,2)*Xeh(s,i+1) + A_0(6,3)*Xv_1(s,i+1) + A_0(6,4)*Xv_2(s,i+1) + A_0(6,5)*Xev_1(s,i+1) + B_0(6,1)*5*exp(-0.1*(s+i+1))*sin(i+s+1));
Z(s,i)=norm(C_0*x0 + D_w*5*exp(-0.1*(s+i))*sin(i+s));
U(s,i)=K*([Xh(s,i); Xv_1(s,i); Xv_2(s,i)] - [Xeh(s,i); Xev_1(s,i); Xev_2(s,i)]);
end
end
figure(1)
surf(v,w,Xh)
xlabel('i');
ylabel('j');
zlabel('x^h(i,j)');
hold on;
figure(2)
surf(v,w,Xeh)
xlabel('i');
ylabel('j');
zlabel('x_e^h(i,j)');
hold on;
figure(3)
surf(v,w,Xv_1)
xlabel('i');
ylabel('j');
zlabel('x_1^v(i,j)');
hold on;
figure(4)
surf(v,w,Xv_2)
xlabel('i');
ylabel('j');
zlabel('x_2^v(i,j)');
hold on;
figure(5)
surf(v,w,Xev_1)
xlabel('i');
ylabel('j');
zlabel('x_{e1}^v(i,j)');
hold on;
figure(6)
surf(v,w,Xev_2)
xlabel('i');
ylabel('j');
zlabel('x_{e2}^v(i,j)');
hold on;
figure(7)
surf(v,w,Z)
xlabel('i');
ylabel('j');
zlabel('||z(i,j)||');
hold on;
figure(8)
surf(v,w,U)
xlabel('i');
ylabel('j');
zlabel('u(i,j)|');
hold on;
3 Commenti
Ganesh
il 22 Giu 2024
Modificato: Ganesh
il 22 Giu 2024
In that line, when you are using the formula, you've accessed x2(k+1).
x2(k+1)=-inv(A_c(2,2))*(A_c(2,1)*x1(k+1)+A_d(2,1)*x1(floor(k-1.5-1.5*round(sin(0.5*pi*(k+1)))))+A_d(2,2)*x2(floor(k-1.5-1.5*round(sin(0.5*pi*(k+1)))))+A_h(2,1)*(x1(k)+x1(k-1)+x1(k-2))+A_h(2,2)*(x2(k)+x2(k-1)+x2(k-2))+B_w(2,1)*sin(k+1)*exp(-0.1*(k+1))+B_f(2,2)*a*sqrt((x2(k+1))^2+(x1(floor(k-1.5-1.5*round(sin(0.5*pi*(k+1))))))^2+(x2(k)+x2(k-1)+x2(k-2))^2));
This wouldn't be correct, since you're assigning x2(k+1) through the loop. Either it's a mistake, or you might want to redefine the equation.
For any future learning, when you encounter an index issue, it's quite easy to debug it. It simply means that you are trying to access an index of an array that simply doesn't exist at that point. I would suggest you to put a "breakpoint" at that line, and check if each of the variables are accessible at the breakpoint. Will help you find with variable is causing the issue.
Vedere anche
Categorie
Scopri di più su Interpolation of 2-D Selections in 3-D Grids in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!