Octave Atelier

코드와 해설을 함께 읽는 학습 문서

Code Detail

ex-io

Control & Dynamics + Data I/O 중심의 Octave 학습 예제

ex-pkg/ex-io.m

목록으로

코드를 복사해 Octave에서 바로 실행할 수 있습니다.

카테고리

Package Drill

package-drill

코드 길이

84

lines

작성자

-

날짜 정보 없음

패키지

io

pkg load

전체 코드

84 lines

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

출력

  • 콘솔 텍스트 출력

실행 흐름

  1. 데이터 생성
  2. 엑셀 파일에 쓸 데이터
  3. JSON 데이터 생성
  4. 각 필드 출력
  5. disp("XML에서 읽은 데이터:");

핵심 함수

  • disp
  • fclose
  • fileread
  • fopen
  • fprintf
  • csvread
  • csvwrite
  • fieldnames

실습 과제

  • 질량/감쇠/강성 또는 전달함수 계수를 바꿔 응답 변화를 확인해보세요.
  • 핵심 함수 disp의 인자를 한 가지 바꿔 결과 변화를 기록해보세요.
  • "데이터 생성 -> 엑셀 파일에 쓸 데이터" 흐름을 함수 단위로 분리해 리팩터링해보세요.

학습 팁

  • 입력 파일 경로가 현재 작업 디렉터리 기준인지 먼저 확인하세요.

같은 카테고리 코드

이전 코드 ex-image 다음 코드 ex-optim