how to average specific rows of all columns?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
laxminarayana pasupuleti
el 10 de Jun. de 2017
Respondida: J Yadav
el 16 de En. de 2019
i am having 100x32 matrix in my data set. i would like to average 20 rows of all columns, like first 20rows average, next 20 and so..on...
can any one help in this problem.
2 comentarios
Respuesta aceptada
the cyclist
el 10 de Jun. de 2017
Editada: the cyclist
el 10 de Jun. de 2017
% Some made-up data
A = rand(100,32);
N = 20;
movingAverageA = movmean(A,[(N-1) 0]); % Trailing average of N rows
output = movingAverageA(N:N:end,:);
3 comentarios
Image Analyst
el 12 de Jun. de 2017
Did you get it working? You've accepted this answer so I assume so.
Más respuestas (2)
J Yadav
el 16 de En. de 2019
to take a moving average of 1 to 20 rows, then 21-40 rows, then 41-60 rows etc.
of a data matrix with n rows and m columns.
you may also try:
for i=1:(n/20) % given that n is a multpile of 20 or your choice of no. of rows to average.
a=(i-1)*20+1;
b=(i-1)*20+20;
meandata(i,:) = mean(data(a:b,:),1);
end
0 comentarios
Image Analyst
el 10 de Jun. de 2017
Editada: Image Analyst
el 12 de Jun. de 2017
The first index are the rows. For example to average only the first 20 rows
columnMeans = mean(data([1:20], :), 1);
Or to average rows 34, 23, and 194, do
rowsToAverage = [34, 23, 194];
columnMeans = mean(data(rowsToAverage, :), 1);
2 comentarios
Image Analyst
el 12 de Jun. de 2017
This seems to work:
data = randi(9, 100, 32) % Sample 100x32 data
columnMeans = [
mean(data([1:20], :), 1);
mean(data([21:40], :), 1);
mean(data([41:60], :), 1);
mean(data([61:80], :), 1);
mean(data([81:100], :), 1)]
Is that what you want?
Ver también
Categorías
Más información sobre Geometry and Mesh en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!