i have a 42*16384. how do i average it so that i get a new matrix of size 42*2048 (if N=2048 represents one revolution and N=16384 represents 8 revolutions).

 채택된 답변

Andrei Bobrov
Andrei Bobrov 2012년 2월 6일

1 개 추천

data - your array [42x16384]
EDIT
out = mean(reshape(data,size(data,1),[],8),3);
eg:
data - your array [55x72000]
out = mean(reshape(data,size(data,1),[],3),3);
or
out = squeeze(mean(reshape(data,size(data,1),3,[]),2)) ;

댓글 수: 5

Lisa Justin
Lisa Justin 2012년 2월 6일
thanks. Please how do i do the same with a matrix of 55*72000 so i get 55*24000 (where N=24000 represents one revolution and N=72000 represents 3 revolutions)?
Andrei Bobrov
Andrei Bobrov 2012년 2월 6일
out = mean(reshape(data.',size(data,2),[],3),3).'
Lisa Justin
Lisa Justin 2012년 2월 6일
i get an error message
??? Error using ==> reshape
Product of known dimensions, 216000, not divisible into total number of elements,
3960000.
Lisa Justin
Lisa Justin 2012년 2월 6일
I am still getting the same error message with
out = squeeze(mean(reshape(data.',size(data,2),8,[]),2)).'
Andrei Bobrov
Andrei Bobrov 2012년 2월 6일
see EDIT

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Elementary Math에 대해 자세히 알아보기

태그

질문:

2012년 2월 6일

편집:

2013년 10월 1일

Community Treasure Hunt

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

Start Hunting!

Translated by