main_02_scy
Signal Processing + Statistics 중심의 Octave 학습 예제
ex-recv/02/02_scy/main_02_scy.m
전체 코드
전체 코드를 복사해서 Octave에서 바로 실행할 수 있습니다.
# In house code 함수를 통한 mean, variance, standard deviation, rms 계산
# 작성자 : 신찬영
# 작성날짜 : 25.03.26.
clc
clear
pkg load io
pkg load signal
path = "google_data_2024.csv"; #작업파일 경로
# rawdata : (254,6) / 1행 : 라벨 / 4행 부터 필요 데이터
[date, close_price, high_price, low_price, open_price, volume, label] = loadcsv(path);
# save -7 google_data_2024.mat high_price low_price open_price volume label #load 한 데이터 중 사용하지 않는것 mat파일로 저장
# save("google_data_2024.mat", "close_price", "high_price", "low_price", "open_price", "volume", "label", "-v7")
# in house VS built in 비교 - 종가 기준
%mean 비교
mean_builtin = mean(close_price);
mean_inhouse = mean_(close_price);
printf("mean(built in) : %f\n", mean_builtin);
printf("mean(in house) : %f\n", mean_inhouse);
%variance 비교
var_builtin = var(close_price);
var_inhouse = var_(close_price);
printf("var(built in) : %f\n", var_builtin);
printf("var(in house) : %f\n", var_inhouse);
%standard deviation 비교
std_builtin = std(close_price);
std_inhouse = std_(close_price);
printf("std(built in) : %f\n", std_builtin);
printf("std(in house) : %f\n", std_inhouse);
%rms 비교
rms_builtin = rms(close_price);
rms_inhouse = rms_(close_price);
printf("rms(built in) : %f\n", rms_builtin);
printf("rms(in house) : %f\n", rms_inhouse);
mean_val = zeros(1, size(date,1)-29);
# 30일 동안 항목 비교
nn = size(date,1)-29;
for i = 1:nn; #데이터 상 첫 날부터 30일씩 묶기
close_30d = close_price(i:i+29);
mean_val(i) = mean_(close_30d); # OUT : (1,222)
var_val(i) = var_(close_30d); # OUT : (1,222)
std_val(i) = std_(close_30d); # OUT : (1,222)
rms_val(i) = rms_(close_30d); # OUT : (1,222)
end
# 30일 동안의 결과 플로팅
xlim_val = [0 size(date,1)-29]; # x축 설정
figure(1)
subplot(2,2,1) # mean plot
hold on
plot(mean_val)
grid on
hold off
xlim(xlim_val);
title("mean")
subplot(2,2,2) # variance plot
hold on
plot(var_val)
grid on
hold off
xlim(xlim_val);
title("variance")
subplot(2,2,3) # standard deviation plot
hold on
plot(std_val)
grid on
hold off
xlim(xlim_val);
title("standard deviation")
subplot(2,2,4) # rms plot
hold on
plot(rms_val)
grid on
hold off
xlim(xlim_val);
title("rms")
코드 해설
목적
Signal Processing + Statistics 중심의 Octave 학습 예제
입력
- 스크립트 상단에서 정의한 파라미터/입력 데이터를 사용합니다.
출력
- 저장 파일: google_data_2024.mat
- 그래프/figure 출력
- 콘솔 텍스트 출력
실행 흐름
- 30일 동안의 결과 플로팅
핵심 함수/주제
printfplotsubplottitlexlimmeanrmssize
실습 과제
- 샘플링 주파수나 입력 주파수를 바꿔 스펙트럼 변화를 비교해보세요.
- 같은 연산을 내장 함수와 사용자 함수 두 방식으로 계산해 오차를 비교해보세요.
- 질량/감쇠/강성 또는 전달함수 계수를 바꿔 응답 변화를 확인해보세요.
학습 팁
- 그래프 비교 시 축 범위(XLim/YLim)와 단위를 먼저 고정하면 해석 오류를 줄일 수 있습니다.
- 입력 파일 경로가 현재 작업 디렉터리 기준인지 먼저 확인하세요.
같은 카테고리의 다른 코드
- 수치미분
ex-recv/01/01-CJW-20250321/수치미분.m - main_cjw
ex-recv/01/01-CJW-20250321/main_cjw.m - main-my_diff
ex-recv/01/01-JKH-20250319/main-my_diff.m - hw_1_kim-gpt
ex-recv/01/01-KSG-20250318/hw_1_kim-gpt.m - hw_1_kim
ex-recv/01/01-KSG-20250318/hw_1_kim.m - [Octave] HW#1
ex-recv/01/01-LSH-20250319/[Octave] HW#1.m - Octave_Moon_250319
ex-recv/01/01-MJY-20250319/Octave_Moon_250319.m - Octave01_Park,jm_250319
ex-recv/01/01-PJM-20250319/Octave01_Park,jm_250319.m - [Octave]250318_RYU_poly,dff
ex-recv/01/01-RJW-20250321/[Octave]250318_RYU_poly,dff.m - 과제1_신찬영연구원
ex-recv/01/01-SCY-20250319/과제1_신찬영연구원.m