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).

 Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 6 Feb. 2012

1 Stimme

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 Kommentare

Lisa Justin
Lisa Justin am 6 Feb. 2012
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 am 6 Feb. 2012
out = mean(reshape(data.',size(data,2),[],3),3).'
Lisa Justin
Lisa Justin am 6 Feb. 2012
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 am 6 Feb. 2012
I am still getting the same error message with
out = squeeze(mean(reshape(data.',size(data,2),8,[]),2)).'
Andrei Bobrov
Andrei Bobrov am 6 Feb. 2012
see EDIT

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by