Octave Learning Hub

Code Detail

csv2struct

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

ex-recv/02/02_pjm/csv2struct.m

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

카테고리

Submission Archive

submission

코드 길이

29

lines

작성자

-

날짜 정보 없음

패키지

io

pkg load 기준

함수 시그니처

function CSVout = csv2struct(filename, datarow, fieldrows)

전체 코드

29 lines

function CSVout = csv2struct(filename,datarow,fieldrows)
####  Output
####  CSVout.date
####  CSVout.("TICKER").("PRICE")

##  Inputs
##  filename (str)
##  datarow  (1,1) : 데이터 첫 행 인덱스
##  fieldrows(1,N) : 필드 행 인덱스
  pkg load io

  csv_tot = csv2cell(filename);
  fieldnames = csv_tot(fieldrows,2:end);
  N_levels = length(fieldrows);
  N_fields = size(fieldnames,2);

  CSVout.date = csv_tot(datarow:end,1);
  for jj = 1:N_fields

    ref = 'CSVout';   ##  다중 구조체 경로 정의
    for ii = 1:N_levels
      ref = sprintf('%s.(%s)', ref, ['"' fieldnames{ii,jj} '"']);
    end
    eval([ref '= cell2mat(csv_tot(datarow:end,jj+1));'])

  end

end

코드 해설

목적

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

입력

  • 파라미터: filename
  • 파라미터: datarow
  • 파라미터: fieldrows

출력

  • 반환값: CSVout

실행 흐름

  1. # datarow (1,1) : 데이터 첫 행 인덱스

핵심 함수

  • csv_tot
  • cell2mat
  • csv2cell
  • datarow
  • eval
  • fieldrows
  • filename
  • length

실습 과제

  • 질량/감쇠/강성 또는 전달함수 계수를 바꿔 응답 변화를 확인해보세요.
  • 핵심 함수 csv_tot의 인자를 한 가지 바꿔 결과 변화를 기록해보세요.

같은 카테고리 코드

이전 코드 read_data 다음 코드 main_02_pjm