나는 100 개의 샘플링 된 숫자가 있으며, 나는 matlab에 정규 분포 곡선을 그릴 필요가 있습니다.Matlab에서 샘플의 정규 분포 그래프 그리기
이러한 샘플링 된 데이터의 평균 및 표준 편차는 쉽게 계산할 수 있지만 정규 분포를 나타내는 함수가 있습니까?
나는 100 개의 샘플링 된 숫자가 있으며, 나는 matlab에 정규 분포 곡선을 그릴 필요가 있습니다.Matlab에서 샘플의 정규 분포 그래프 그리기
이러한 샘플링 된 데이터의 평균 및 표준 편차는 쉽게 계산할 수 있지만 정규 분포를 나타내는 함수가 있습니까?
당신이 통계 도구 상자에 액세스 할 수있는 경우,이 함수 histfit
내가 당신이 필요로하는 무슨 생각을 수행합니다
>> x = randn(10000,1);
>> histfit(x)
그냥
hist
명령과 같은
, 당신 bin 수를 지정할 수도 있고, 어떤 배포판이 사용되는지 지정할 수도 있습니다 (기본적으로 정규 분포).
Statistics Toolbox가없는 경우 @Gunther 및 @learnvst의 답을 조합하여 유사한 효과를 재현 할 수 있습니다.
사용 hist : 당신은 또한 그릴 빈의 수를 지정할 수 있습니다
, 예를 들면 :
hist(data,5)
hist(data)
그것은 당신의 데이터의 히스토그램 플롯을 그립니다
결과로 그리는 경우에만 pdf는 사용하여 직접 만들 :
mu=mean(data);
sg=std(data);
x=linspace(mu-4*sg,mu+4*sg,200);
pdfx=1/sqrt(2*pi)/sg*exp(-(x-mu).^2/(2*sg^2));
plot(x,pdfx);
당신은 아마 이전
hist
플롯에 오버레이 할 수 있습니다 (내가 먼저 그러나 일을 확장 할 필요가 있다고 생각
는 PDF는 0-1 범위에 있고, 히스토그램에 범위 : 빈당 요소 수).
데이터에 대해 가우스 분포를 그리려면 다음 코드를 사용하여 평균 및 표준 편차 값을 데이터 집합에서 계산 된 값으로 바꿉니다.
STD = 1;
MEAN = 2;
x = -4:0.1:4;
f = ( 1/(STD*sqrt(2*pi)) ) * exp(-0.5*((x-MEAN)/STD).^2 );
hold on; plot (x,f);
이 예에서 배열 x
은 분포의 X- 축, 그래서 당신은 어떤 범위와 샘플링 밀도가 변경합니다.
신호 처리 도구 상자를 사용하지 않고 데이터에 Gaussian 피트를 그리려면 다음 코드가 올바른 플롯으로 해당 플롯을 그립니다. y
을 자신의 데이터로 바꾸십시오.
y = randn(1000,1) + 2;
x = -4:0.1:6;
n = hist(y,x);
bar (x,n);
MEAN = mean(y);
STD = sqrt(mean((y - MEAN).^2));
f = ( 1/(STD*sqrt(2*pi)) ) * exp(-0.5*((x-MEAN)/STD).^2 );
f = f*sum(n)/sum(f);
hold on; plot (x,f, 'r', 'LineWidth', 2);
+1 멋진, 정확히 OP가 찾고있는 –
와우. 나는 이것을 정확히 찾고 있었다. 감사 :) – ManiAm