Filter löschen
Filter löschen

how to average specific rows of all columns?

11 Ansichten (letzte 30 Tage)
laxminarayana pasupuleti
laxminarayana pasupuleti am 10 Jun. 2017
Beantwortet: J Yadav am 16 Jan. 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 Kommentare
the cyclist
the cyclist am 10 Jun. 2017
Would the output be, in your example, a 5x32 matrix?

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

the cyclist
the cyclist am 10 Jun. 2017
Bearbeitet: the cyclist am 10 Jun. 2017
If I understand your question correctly, you can use the movmean command:
% 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 Kommentare
Image Analyst
Image Analyst am 12 Jun. 2017
Did you get it working? You've accepted this answer so I assume so.
laxminarayana pasupuleti
laxminarayana pasupuleti am 12 Jun. 2017
in my version its not woking..so i am trying latest version...

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

J Yadav
J Yadav am 16 Jan. 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

Image Analyst
Image Analyst am 10 Jun. 2017
Bearbeitet: Image Analyst am 12 Jun. 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 Kommentare
laxminarayana pasupuleti
laxminarayana pasupuleti am 12 Jun. 2017
this is not working
Image Analyst
Image Analyst am 12 Jun. 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?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Operators and Elementary Operations finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by