subtract from each element its mean / find absolute deviation across rows

3 visualizzazioni (ultimi 30 giorni)
A = [1 2 NaN; 4 NaN 6; 7 8 9]
A =
1 2 NaN
4 NaN 6
7 8 9
mn = nanmean(A,2)
mn =
1.5000
5.0000
8.0000
I would like to subtract each element by its corresponding row average as shown below(i.e find absolute deviations from mean),
1-1.5 2-1.5 NaN
4-5 NaN 6-5
7-8 8-8 9-8
Note the below array has no negative values as I am trying to find modulus of deviations.
0.5 0.5 NaN
1 NaN 1
1 0 1
Then sum up each row and divide by no. of elements.
(-0.5+0.5)/2
(-1 + 1)/2
(-1 + 0 + 1)/3
How can I achieve this result vector using arrayfun or by any other method ?
I am trying to find teh absolute deviation of each element in the array. i.e std.dev without the sq

Risposta accettata

Walter Roberson
Walter Roberson il 17 Gen 2013
nanmean(abs(bsxfun(@minus A, nm)),2)

Più risposte (0)

Categorie

Scopri di più su Matrices and Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by