average of each two vectors of a matrix

7 visualizaciones (últimos 30 días)
Niki
Niki el 9 de Oct. de 2014
Comentada: Stephen23 el 9 de Oct. de 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

Respuesta aceptada

Iain
Iain el 9 de Oct. de 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 comentario
Stephen23
Stephen23 el 9 de Oct. de 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

Iniciar sesión para comentar.

Más respuestas (1)

Azzi Abdelmalek
Azzi Abdelmalek el 9 de Oct. de 2014
Editada: Azzi Abdelmalek el 9 de Oct. de 2014
a=reshape(mean(permute(reshape(x',5,2,[]),[2 1 3])),5,5)'

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by