How to subtract Mean from Matrix along columns

28 visualizaciones (últimos 30 días)
JFz
JFz el 16 de Nov. de 2017
Editada: John D'Errico el 16 de Nov. de 2017
Hi,
In subtraction, there is an example of subtract mean from matrix: A - mean(A) and it works well. But I have a matrix A of 15X1000, and I want to subtract the mean mean(A, 2) along the 1000 columns, how to do that? Thanks Jennifer

Respuesta aceptada

JFz
JFz el 16 de Nov. de 2017
With the above help, found that bsxfun works for versions before 2017a:
bsxfun(@minus, A, mean(A, 2))

Más respuestas (2)

KL
KL el 16 de Nov. de 2017
Editada: KL el 16 de Nov. de 2017
Just the same way, A-A_mean. Here's an example with 5 columns,
>>A = reshape(1:25,5,5) %dummydata
A =
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
>>A_mean = mean(A,2)
A_mean =
11
12
13
14
15
>>A = A-A_mean
A =
-10 -5 0 5 10
-10 -5 0 5 10
-10 -5 0 5 10
-10 -5 0 5 10
-10 -5 0 5 10
EDIT (thanks John)
and for older versions,
A = bsxfun(@minus,A,A_mean)
  3 comentarios
JFz
JFz el 16 de Nov. de 2017
I tried the above but got this error: Error using - Matrix dimensions must agree.
I am using 2016a. I will have to change a lot of code to upgrade to 2017a successfully. Thanks, let me look at repmat and bsxfun.
JFz
JFz el 16 de Nov. de 2017
OK. bsxfun works! bsxfun(@minus, A, mean(A, 2))

Iniciar sesión para comentar.


JFz
JFz el 16 de Nov. de 2017
Thanks to KL and John! Have a nice day!

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by