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

Jan
Jan 2011년 3월 9일
Sorry for asking: Is the "mean_value" the mean of the values?!

댓글을 달려면 로그인하십시오.

 채택된 답변

Teja Muppirala
Teja Muppirala 2011년 3월 9일

0 개 추천

You probably meant to write (400-1) and not (40-1).

댓글 수: 2

john
john 2011년 3월 9일
thanks a lot
Teja Muppirala
Teja Muppirala 2011년 3월 9일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터 및 File Exchange에서 MATLAB에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by