Error while computing mean of a row vector

I am getting the following error while finding out the mean of a row vector(using the mean function of matlab) containing ten elements:
Subscript indices must either be real positive integers or logicals.
Could any one tell me how to resolve this error?
Thank you!

 Accepted Answer

In the Command Window, type:
which mean -all
If it returns:
mean is a variable.
among its path returns, you are ‘shadowing’ (or ‘overshadowing’) the mean function with a variable you named ‘mean’. The solution is to rename the variable to ‘meanx’ or some such.

5 Comments

Well I haven't named the variable 'mean'; for example
xy = mean(abc) %abc is a row vector; abc=15.4206*ones(1,10)
and the error is:
Subscript indices must either be real positive integers or logicals.
This works for me without error:
abc=15.4206*ones(1,10);
xy = mean(abc);
I still suspect somewhere in your code, either mean or ones (if that is actually your code) are being shadowed. I would imagine you could get a ‘index exceeds matrix dimension’ error with positive integer arguments, but since they aren’t integers, you’re getting the error you see.
@anuribs: please tell us exactly the output when you run this command:
which mean -all
I am getting the same error: Subscript indices must either be real positive integers or logicals.
But now I am calculating it in the traditional way,i.e taking the sum and dividing it by the total number of observations so no longer a problem for me!
I still believe you’re shadowing the mean function somewhere in your code.

Sign in to comment.

More Answers (0)

Categories

Asked:

on 19 Aug 2015

Commented:

on 20 Aug 2015

Community Treasure Hunt

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

Start Hunting!