mean first 10 lines and next 10 line till finish array

2 次查看(过去 30 天)
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!

采纳的回答

Mathieu NOE
Mathieu NOE 2021-12-6
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

更多回答(1 个)

Chunru
Chunru 2021-12-6
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

类别

Help CenterFile Exchange 中查找有关 Large Files and Big Data 的更多信息

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by