standard deviation in matlab
    4 次查看(过去 30 天)
  
       显示 更早的评论
    
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
采纳的回答
  Teja Muppirala
    
 2011-3-9
        You probably meant to write (400-1) and not (40-1).
2 个评论
  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 个)
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Specialized Power Systems 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


