How do I fix error: Index exceeds matrix dimensions?

I want to make a loop where I calculate the mean of my 35040x12datamatrix for every 24 datapoint, but I get an error: Error using dataset/subsref (line 616) Index exceeds matrix dimensions.
for i=1:24:35040
Xday(icount,:)=mean(A.data(i:24*i,:));
icount=icount+1;
end
What am I doing wrong? Thanks

답변 (2개)

James Tursa
James Tursa 2016년 2월 3일
편집: James Tursa 2016년 2월 3일
Try this:
for i=1:24:35040
Xday(icount,:)=mean(A.data(i:(i+23),:)); % <-- Changed 24*i to i+23
icount=icount+1;
end
Or a vectorized way:
Xday = reshape(mean(reshape(A.data,24,[])),1460,[]);
Lilja Dahl
Lilja Dahl 2016년 2월 3일

0 개 추천

Fantastic! The loop didn't work but vector did! thank you so much

댓글 수: 2

James Tursa
James Tursa 2016년 2월 3일
편집: James Tursa 2016년 2월 3일
For the loop, did you preallocate Xday? E.g., Xday = zeros(1460,12). And did you initialize icount = 1?
Thank you so much for your help. My loop ended up looking like this:
icount=1;
for i=1:24:35040
Xday(icount,:)=missmean(Anew0.data(i:icount*24,:));
icount=icount+1;
end

이 질문은 마감되었습니다.

질문:

2016년 2월 3일

마감:

2021년 8월 20일

Community Treasure Hunt

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

Start Hunting!

Translated by