standard deviation in matlab

3 visualizaciones (últimos 30 días)
john
john el 9 de Mzo. de 2011
Hello, I have calculate in my program the mean value and I am trying to calculate the standard deviaton value of an array 20x20, without using the std command.Next, I compare my result to that whoch I get when I use the std command, but they are different.Could someone explain me the reason? Is their any problem in the types of my algorithm? Here is my code:
mean_value = 65.4250;
sum_dev = 0;
for i=1:1:20
for j=1:1:20
sum_dev = sum_dev + ((ROI(i,j)- mean_value)^2);
end;
end;
std_dev = ((sum_dev/(40-1))^(1/2));
disp(std_dev);
129.0786
std(ROI(:), 0,1)
ans =
40.3552
  1 comentario
Jan
Jan el 9 de Mzo. de 2011
Sorry for asking: Is the "mean_value" the mean of the values?!

Iniciar sesión para comentar.

Respuesta aceptada

Teja Muppirala
Teja Muppirala el 9 de Mzo. de 2011
You probably meant to write (400-1) and not (40-1).
  2 comentarios
john
john el 9 de Mzo. de 2011
thanks a lot
Teja Muppirala
Teja Muppirala el 9 de Mzo. de 2011
It should be noted, you could have avoided this by writing something like:
std_dev = ((sum_dev/(numel(ROI)-1))^(1/2));
instead. In general, you're probably better off not hardcoding numbers like "400" (same goes for the loop indices). This is a lot more flexible since it works for any ROI size.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Logical 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