Attempted to access x(402); index out of bounds because numel(x)=401.

조회 수: 1 (최근 30일)
Hassan
Hassan 2015년 1월 10일
댓글: Stephen23 2015년 1월 10일
I want to apply forward downstream scheme on a linear advection equation; this code was used in forward upstream scheme and I could not modify it to fit my application.
The error is caused by the "k+1" in line 18 of the code
dx = 0.05; dt = 0.01; C = 1; A1 = 1-C*dt/dx; A2 = C*dt/dx;
x = [0:dx:20];
N = length(x);
for k = 2:N
if (x(k) >= 4) && (x(k) <= 6)
u(k) = cos(0.5*pi*(x(k)-5));
else
u(k) = 0;
end
end
u(1) = u(N);
for k = 1:N
uplot(1,k) = u(k);
end
for iout = 1:5
for n = 1:5
for k = 2:N
u1(k) = A1*u(k)+A2*u(k+1);
end
u1(1) = u1(N);
for k = 1:N
u(k) = u1(k);
end
end
for k = 1:N
uplot(iout+1,k) = u(k);
end
end

채택된 답변

Stalin Samuel
Stalin Samuel 2015년 1월 10일
instead of N use N-1

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by