Index exceeds the number of array elements. Index must not exceed 2.

21 次查看(过去 30 天)
Hi. I have an error : Index exceeds the number of array elements. Index must not exceed 2. for line 16. Why ? and How can i fix this problem ?
clc; clear all;
t=[0 1];
h=0.01;
n=(t(2)-t(1))/h;
alpha=0.5;
%initials%
y_m(1)=2;
y_m(2)=exp(20.*h)+cos(h);
f_m(1)=20.*(y_m(1)-cos(t(1)))-sin(t(1));
f_m(2)=20.*(y_m(2)-cos(t(2)))-sin(t(2));
%Midpoint Two step method%
for i=3:n
y_m(i)=y_m(i-2)+2.*h.*f_m(i-1);
f_m(i)=20.*(y_m(i)-cos(t(i)))-sin(t(i));
end
  1 个评论
Jan
Jan 2022-5-23
Instead of writing "line 16" post a copy of the complete error message. Then the readers do not have to count and most of all: the 16th line is running without a problem, but the 17th fails...

请先登录,再进行评论。

采纳的回答

Jan
Jan 2022-5-23
for i=3:n
y_m(i)=y_m(i-2)+2.*h.*f_m(i-1); % <-- This is line 16
f_m(i)=20.*(y_m(i)-cos(t(i)))-sin(t(i)); % <-- This line is failing
end
t(3) is not defined.

更多回答(1 个)

Voss
Voss 2022-5-23
This error happens because t has only two elements, so there is no element t(3).
How to fix it depends on what the code should be doing.

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by