"Index exceeds the number of array elements"

1 次查看(过去 30 天)
I've been getting an index exceed the number of array elemnts (2048)
How to I solve this?

回答(2 个)

Cris LaPierre
Cris LaPierre 2020-7-30
Use an index that is not greater than the dimension you are indexing. For example, if your array is a 1x2048, you will get this error is you try to index row 2 or column 2049.
  4 个评论
Jarren Berdal
Jarren Berdal 2020-7-30
编辑:Walter Roberson 2020-7-30
Pulling data from a 2048 x 7 array. Isolated some of the data into a 2048 x 1 array. Finding the mean of the data of groups of 5s. Came up with a 409 x 1 array.
error that appears " Index exceeds the number of array elements (2048) "
error in line 24
code:
17 - DATE = D(:,1); % first column, days numbered from 1/1/1900
%cloud of data for summ of the data in one grouping
19- Darray(1,1) = mean(DATE(1:N)); %initial value
20 - PRICE = D(:,5); % 5th column associated with closing price
21- Parray(1,1) = mean(PRICE(1:N));
22 - for i = 1:(R)
23 - p = (i*N);
24 - Darray((i+1),1) = mean(DATE((p+1):(p+N)));
25 - Parray((i+1),1) = mean(PRICE((p+1):(p+N)));
end
Cris LaPierre
Cris LaPierre 2020-7-30
What is the value of
  • R
  • N (5?)
What is the size of DATE

请先登录,再进行评论。


Walter Roberson
Walter Roberson 2020-7-30
We do not know what R is.
If we suppose R is the 409 and N is 5, then on the last iteration, when i = 409, then p = 409*5 = 2045, and p+1:p+N = 2046 : 2050, but the array is only 2048 long.
Meanwhile, when i = 1, then p=i*N = 5, and p+1:p+N is 5+1 : 5+5 = 6:10 . Notice that you have not accessed index 1:5 .
The solution:
23 - p = (i*N);
should be
23 - p = ((i-1)*N);

类别

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