average of each two vectors of a matrix

9 vues (au cours des 30 derniers jours)
Niki
Niki le 9 Oct 2014
Commenté : Stephen23 le 9 Oct 2014
I have a matrix of n*n for example 10*5
x=rand(10,5)
Then I want to get the average of each two row. For example the first two row (each element ) etc
I will have a matrix of 5*5 after that

Réponse acceptée

Iain
Iain le 9 Oct 2014
(x(2:2:10,:) + x(1:2:9,:))/2
Thats the "simple" answer. There are other methods that are more flexible, but which need a little more thought eg.:
y = reshape(x,[2,5,5])
answer = squeeze(mean(y));
  1 commentaire
Stephen23
Stephen23 le 9 Oct 2014
The first solution can also be generalized a little using end instead of hardcoded limits:
(x(2:2:end,:) + x(1:2:end,:))/2

Connectez-vous pour commenter.

Plus de réponses (1)

Azzi Abdelmalek
Azzi Abdelmalek le 9 Oct 2014
Modifié(e) : Azzi Abdelmalek le 9 Oct 2014
a=reshape(mean(permute(reshape(x',5,2,[]),[2 1 3])),5,5)'

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by