MATLAB: Error in function ‘var’ while calculating variance

submatrixvarvariance

Hello everyone!
I'm new with Matlab, so I hope you're understanding with me.
I'm trying to calculate the variance of a submatrix. So, I do the following:
IMG = imread('figure13.tif');
Sxy = IMG(top_x:top_x+k-1, top_y:top_y+k-1);
local_var = var(var(Sxy));
But, it prints me this error:
Error using var (line 65)
First argument must be single or double.
I don't write the variables top_x , top_y and k in order to make it simple but it takes the submatrix correctly.
I make the same with mean function and it works perfectly. Why is 'var' different? How can I calculate the local variance?
Thanks in advance!

Best Answer

Your image data is stored in one of the integer data types. Convert the data to single precision using the single function or to double precision using the double function before calling var on it.