How to subtract Mean from Matrix along columns

조회 수: 28 (최근 30일)
JFz
JFz 2017년 11월 16일
편집: John D'Errico 2017년 11월 16일
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

채택된 답변

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

추가 답변 (2개)

KL
KL 2017년 11월 16일
편집: KL 2017년 11월 16일
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
JFz
JFz 2017년 11월 16일
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 2017년 11월 16일
OK. bsxfun works! bsxfun(@minus, A, mean(A, 2))

댓글을 달려면 로그인하십시오.


JFz
JFz 2017년 11월 16일
Thanks to KL and John! Have a nice day!

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by