Index exceeds the number of array elements (5)

30 Ansichten (letzte 30 Tage)
Kolleggerm1
Kolleggerm1 am 7 Okt. 2019
Kommentiert: Guanyang Liu am 17 Mär. 2021
I am solving Forward Euler for dy=x*y+1, x between 0 and 1, y(0)=0 h=.25
I have gotten the error message "Index exceeds the number of array elements (5)" after rearranging the code (because I was getting other error messages). How can I clear it up?
clc; clear all;
h=0.25; % step size
xmin=0;
xmax=1;
x=xmin:h:xmax; %x boundaries
n=length(x);
y=zeros(1,n);% Initial condition
for i=1:n
x0=0;
dy=(x(i+1)*y(i)+1);
x(i+1)=n*h;
y(i+1)=y(i)+h*dy;
end
figure(1)
hold on
plot (y,x,'b', 'linewidth',2)
title ('Forward Euler')
  1 Kommentar
Matt J
Matt J am 7 Okt. 2019
Kolleggerm1's comment moved here:
So I added a line to the for-loop to identify the max of i which seemed to solve the exceeding error, but now I get an error "Array indices must be positive integers or logical values" in line 10
clc; clear all;
h=0.25; % step size
xmin=0;
xmax=1;
x=xmin:h:xmax; %x boundaries
n=length(x);
y=zeros(1,n);% Initial condition
for i=1:n
i=0:1:4;
dy=(x(i+1)*y(i)+1);
x(i+1)=n*h;
y(i+1)=y(i)+h*dy;
end
figure(1)
hold on
plot (y,x,'b', 'linewidth',2)
title ('Forward Euler')

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

the cyclist
the cyclist am 7 Okt. 2019
You have initialized x and y to be vectors of length 5. But in your for loop, i reaches the value value 5, and then you try to access x(i+1), which is x(6), which does not exist. You could run your for loop over just i = 1:n-1.
  6 Kommentare
the cyclist
the cyclist am 17 Mär. 2021
I did not fully understand your question.
I think you should open a new one, with your code included.
MATLAB is a procedural language, and always runs through the code in order.
Guanyang Liu
Guanyang Liu am 17 Mär. 2021
Thank you so much for your prompt reply! I'll start a new thread then

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Matt J
Matt J am 7 Okt. 2019

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by