var(I(:)); Means?

9 views (last 30 days)
Superb
Superb on 5 May 2012
Hi, I have this problem
signal_var = var(I(:));
What's the meaning of the code below?
var(I(:));
Thanks a lot :)
  9 Comments
Walter Roberson
Walter Roberson on 6 May 2012
Ah, I misread. I never used "evaluate selection".
Image Analyst
Image Analyst on 6 May 2012
I never do either.

Sign in to comment.

Answers (2)

the cyclist
the cyclist on 5 May 2012
I(:) treats the array I as a column vector (instead of, say, maybe the MxN array that it was). The var() function takes the variance of that column vector. [See "help var" for details.]
(That assumes that you did not define var as a variable name earlier in the code. If var is a variable, then this code is indexing into that variable.)

Image Analyst
Image Analyst on 5 May 2012
Superb, normally var() will take the mean of each column of a 2D array and return a row vector where each element is the variance of the corresponding column. The programmer didn't want that - he wanted the variance of the entire array, not a column-by-column variance. So to do that you can use the (:) construct, which basically takes all the elements in an array (of any dimension) and strings them all together in a single 1D list of numbers (called a "column vector"). Once you've done that, then the var() function will operate on the whole array, not column-by-column. Now it will return a single number rather than a 1D row vector of the column variances. Does that explain it well?

Categories

Find more on Structures in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!