var(I(:)); Means?

4 visualizaciones (últimos 30 días)
Superb
Superb el 5 de Mayo de 2012
Hi, I have this problem
signal_var = var(I(:));
What's the meaning of the code below?
var(I(:));
Thanks a lot :)
  9 comentarios
Walter Roberson
Walter Roberson el 6 de Mayo de 2012
Ah, I misread. I never used "evaluate selection".
Image Analyst
Image Analyst el 6 de Mayo de 2012
I never do either.

Iniciar sesión para comentar.

Respuestas (2)

the cyclist
the cyclist el 5 de Mayo de 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 el 5 de Mayo de 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?

Categorías

Más información sobre Performance and Memory en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by