mean first 10 lines and next 10 line till finish array

2 views (last 30 days)
i got 210338x3 table array. how to calculate mean for 10 line, then next 10 line, then next 10 line till finish my table array. i dont know how to group first 10th, next 10 and next 10.
thanks!

Accepted Answer

Mathieu NOE
Mathieu NOE on 6 Dec 2021
hello
try this
%% dummy data
data = rand(210338,3); % data must be column oriented (number of rows = number of samples)
buffer = 10; % nb of samples for averaging
%% zero overlap averaging (unweighted)
[m,n] = size(data);
for ci=1:fix(m/buffer)
start_index = 1+(ci-1)*buffer;
stop_index = min(start_index+ buffer-1,m);
avg_data(ci,:) =mean(data(start_index:stop_index,:)); % size : 1 x 3
end

More Answers (1)

Chunru
Chunru on 6 Dec 2021
a = rand(210338, 3);
nrows = size(a, 1)
nrows = 210338
n = 10;
nseg = floor(nrows/n)
nseg = 21033
c = squeeze(mean(reshape(a(1:n*nseg,:), n, nseg, 3)));
clast = mean(a((n*nseg+1):end,:)); % last part
whos
Name Size Bytes Class Attributes a 210338x3 5048112 double c 21033x3 504792 double clast 1x3 24 double n 1x1 8 double nrows 1x1 8 double nseg 1x1 8 double

Categories

Find more on Large Files and Big Data in Help Center and File Exchange

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!