How to subtract Mean from Matrix along columns

28 vues (au cours des 30 derniers jours)
JFz
JFz le 16 Nov 2017
Modifié(e) : John D'Errico le 16 Nov 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

Réponse acceptée

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

Plus de réponses (2)

KL
KL le 16 Nov 2017
Modifié(e) : KL le 16 Nov 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 commentaires
JFz
JFz le 16 Nov 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 le 16 Nov 2017
OK. bsxfun works! bsxfun(@minus, A, mean(A, 2))

Connectez-vous pour commenter.


JFz
JFz le 16 Nov 2017
Thanks to KL and John! Have a nice day!

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Tags

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by