카테고리
Submission Archivesubmission
코드와 해설을 함께 읽는 학습 문서
Code Detail
Statistics + Control & Dynamics 중심의 Octave 학습 예제
ex-recv/02/02_rjw/main_02_rjw.m
코드를 복사해 Octave에서 바로 실행할 수 있습니다.
71 lines
%main_02_RJW.m
%Goole 2024 주가 데이터 분석
%작성자 : RJW
%작성 날짜 : 2025.03.26
##########################################
clc; clear; close all;
% 1. 입력 변수 준비
filename = 'google_data_2024.csv';
closing_prices = read_csv_data(filename);
save 'closing_prices.mat' closing_prices;
##################################
% 2. 각 연산 함수를 개별적으로 호출
mean_custom = calc_mean(closing_prices); %162.48
var_custom = calc_variance(closing_prices, mean_custom); %243.0047
std_custom = calc_std(var_custom); % 15.5886
rms_custom = calc_rms(closing_prices); % 165.4850
%옥타브 연산 코드로 실행
mean_code = mean(closing_prices);
var_code = var(closing_prices);
std_code = std(closing_prices);
rms_code = sqrt(mean(closing_prices.^2));
%비교
fprintf('Mean: Custom = %.4f, Code-in = %.4f\n', mean_custom, mean_code);
fprintf('Variance: Custom = %.4f, Code-in = %.4f\n', var_custom, var_code);
fprintf('Standard Deviation: Custom = %.4f, Code-in = %.4f\n', std_custom, std_code);
fprintf('RMS: Custom = %.4f, Code-in = %.4f\n', rms_custom, rms_code);
##################################
% 3. 플로팅 변수 준비
window_size = 30;
%평균, 분산, 표준 편차, rms 이동선 (N, 1)
[moving_mean, moving_var, moving_std, moving_rms] = ...
moving_statistics(closing_prices, window_size);
save 'moving_statistics.mat' moving_mean moving_var moving_std moving_rms; % 결과 저장
days = (window_size:length(closing_prices)); %x축 day로 표기
% 4. 플로팅
figure(123)
set(gcf, 'position', [100,100,1200,600]);
plot(days, moving_mean, 'b', 'LineWidth', 2); hold on
plot(days, moving_var, 'r', 'LineWidth', 2); hold on
plot(days, moving_std, 'g', 'LineWidth', 2); hold on
plot(days, moving_rms, 'm', 'LineWidth', 2); hold off
grid on
title('30일 이동선','FontSize', 16);
xlabel('Days', 'FontSize', 14);
ylabel('Prices','FontSize', 14);
xlim([0 300])
ylim([0 200])
legend('평균', '분산', '표준 편차', 'RMS');
set(gca, 'fontsize',14)
#######################################
ex-recv/01/01-CJW-20250321/수치미분.m
ex-recv/01/01-CJW-20250321/main_cjw.m
ex-recv/01/01-JKH-20250319/main-my_diff.m
ex-recv/01/01-KSG-20250318/hw_1_kim-gpt.m
ex-recv/01/01-KSG-20250318/hw_1_kim.m
ex-recv/01/01-LSH-20250319/[Octave] HW#1.m
ex-recv/01/01-MJY-20250319/Octave_Moon_250319.m
ex-recv/01/01-PJM-20250319/Octave01_Park,jm_250319.m