Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

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

Asked by Ms. Mat on 17 Jan 2013
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

0 Comments

Ms. Mat

Products

No products are associated with this question.

1 Answer

Answer by Walter Roberson on 17 Jan 2013
Accepted answer
nanmean(abs(bsxfun(@minus A, nm)),2)

1 Comment

Ms. Mat on 17 Jan 2013

Thank You !!!

nanmean(abs(bsxfun(@minus, A, nm)),2)

Walter Roberson

Contact us