ex-statistics
Statistics + Control & Dynamics 중심의 Octave 학습 예제
ex-pkg/ex-statistics.m
전체 코드
전체 코드를 복사해서 Octave에서 바로 실행할 수 있습니다.
run("../startup.m")
pkg load statistics
% 예제 1: 기본적인 통계 계산
data = [5, 7, 8, 9, 10, 6, 5, 8, 9, 7];
mean_val = mean(data); % 평균
median_val = median(data); % 중앙값
std_val = std(data); % 표준편차
printf(fmt("mean : {mean_val}\n"))
printf(fmt("median: {median_val}\n"))
printf(fmt("std : {std_val}\n"))
% 예제 2: 정규분포 난수 생성
random_data = normrnd(0, 1, 1, 1000); % 평균 0, 표준편차 1인 정규분포에서 1000개 샘플 생성
% 히스토그램 그리기
param_f = {"Size", [1280, 720], "Name", "Histogram"};
param_a = {"Title", "정규분포 난수 히스토그램", "XLabel", "값", "YLabel", "빈도수"};
figured(param_f);
subplots(param_a);
hist(random_data, 30);
% 예제 3: t-검정 수행 (H0: 데이터의 평균이 7과 같다)
[h, pval] = ttest(data, 7);
printf(fmt("hypothesis: {h}\n"))
printf(fmt("p-value : {pval}\n"))
% 예제 4: 선형 회귀 분석
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
y = [2, 4, 5, 4, 5, 7, 8, 9, 10, 11];
% 1차 선형 회귀
p = polyfit(x, y, 1);
y_fit = polyval(p, x);
% 회귀선 그래프
param_f = {"Size", [1280, 720], "Name", "Regression"};
param_a = {"Title", "선형 회귀", "XLabel", "x", "YLabel", "y"};
figured(param_f);
subplots(param_a);
plotd(x, y, "o", ";데이터;");
plotd(x, y_fit, ";회귀선;");
legend("Location", "northwest"); 코드 해설
목적
Statistics + Control & Dynamics 중심의 Octave 학습 예제
입력
- 스크립트 상단에서 정의한 파라미터/입력 데이터를 사용합니다.
출력
- 그래프/figure 출력
- 콘솔 텍스트 출력
실행 흐름
- 예제 3: t-검정 수행 (H0: 데이터의 평균이 7과 같다)
- 회귀선 그래프
핵심 함수/주제
fmtprintffiguredplotdsubplotshistlegendmean
실습 과제
- 같은 연산을 내장 함수와 사용자 함수 두 방식으로 계산해 오차를 비교해보세요.
- 질량/감쇠/강성 또는 전달함수 계수를 바꿔 응답 변화를 확인해보세요.
- 초기값을 2~3개 바꿔 최적해 수렴 차이를 기록해보세요.
학습 팁
- 입력 파일 경로가 현재 작업 디렉터리 기준인지 먼저 확인하세요.
같은 카테고리의 다른 코드
- ex-cms
ex-pkg/ex-cms.m - ex-control
ex-pkg/ex-control.m - ex-fmt
ex-pkg/ex-fmt.m - ex-fstring
ex-pkg/ex-fstring.m - ex-image
ex-pkg/ex-image.m - ex-io
ex-pkg/ex-io.m - ex-optim
ex-pkg/ex-optim.m - ex-signal
ex-pkg/ex-signal.m - ex-symbolic
ex-pkg/ex-symbolic.m - fmtf
ex-pkg/fmtf.m