ex-io
Control & Dynamics + Data I/O 중심의 Octave 학습 예제
ex-pkg/ex-io.m
전체 코드
전체 코드를 복사해서 Octave에서 바로 실행할 수 있습니다.
pkg load io
% 데이터 생성
data = [1, 2, 3; 4, 5, 6; 7, 8, 9];
% CSV 파일로 저장
csvwrite("example.csv", data);
% CSV 파일 읽기
loaded_data = csvread("example.csv");
disp("CSV에서 읽은 데이터:");
disp(loaded_data);
########################################
pkg load io
% 엑셀 파일에 쓸 데이터
data = {"이름", "나이", "점수"; "김철수", 25, 90; "이영희", 22, 85};
% 엑셀 파일(.xls)로 저장
xlswrite("example.xlsx", data);
% 엑셀 파일(.xls) 읽기
[loaded_data, txt, raw] = xlsread("example.xlsx");
disp("엑셀에서 읽은 데이터:");
disp(raw);
########################################
pkg load io
% JSON 데이터 생성
json_data = struct("name", "홍길동", "age", 30, "scores", [80, 90, 85]);
% JSON 문자열로 변환
json_txt = jsonencode(json_data);
% JSON 파일로 저장
fid = fopen("example.json", "w");
fprintf(fid, "%s", json_txt);
fclose(fid);
% JSON 파일 읽기
json_loaded = fileread("example.json");
% 다시 구조체로 변환
decoded_json = jsondecode(json_loaded);
disp("JSON에서 읽은 데이터:");
disp(decoded_json);
% 필드명 가져오기
fields = fieldnames(decoded_json);
% 각 필드 출력
for i = 1:numel(fields)
field = fields{i}; % 필드명 문자열
value = decoded_json.(field); % 필드 값
fprintf("%s: ", field);
disp(value);
# printf(fmt("{field}: {value}\n"));
end
########################################
# pkg load io
# % XML 문자열 생성
# xml_content = "<root><name>홍길동</name><age>30</age></root>";
# % XML 파일로 저장
# fid = fopen("example.xml", "w");
# fwrite(fid, xml_content);
# fclose(fid);
# % XML 파일 읽기
# xml_loaded = fileread("example.xml");
# disp("XML에서 읽은 데이터:");
# disp(xml_loaded);
코드 해설
목적
Control & Dynamics + Data I/O 중심의 Octave 학습 예제
입력
- 입력 파일: example.csv
- 입력 파일: example.json
- 입력 파일: example.xml
출력
- 콘솔 텍스트 출력
실행 흐름
- 데이터 생성
- 엑셀 파일에 쓸 데이터
- JSON 데이터 생성
- 각 필드 출력
- disp("XML에서 읽은 데이터:");
핵심 함수/주제
dispfclosefilereadfopenfprintfcsvreadcsvwritefieldnames
실습 과제
- 질량/감쇠/강성 또는 전달함수 계수를 바꿔 응답 변화를 확인해보세요.
- 핵심 함수 disp의 인자를 한 가지 바꿔 결과 변화를 기록해보세요.
- "데이터 생성 -> 엑셀 파일에 쓸 데이터" 흐름을 함수 단위로 분리해 리팩터링해보세요.
학습 팁
- 입력 파일 경로가 현재 작업 디렉터리 기준인지 먼저 확인하세요.
같은 카테고리의 다른 코드
- 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-optim
ex-pkg/ex-optim.m - ex-signal
ex-pkg/ex-signal.m - ex-statistics
ex-pkg/ex-statistics.m - ex-symbolic
ex-pkg/ex-symbolic.m - fmtf
ex-pkg/fmtf.m