본문 바로가기
MATLAB

MATLAB 파일 읽기

by deeplearningkakao 2022. 1. 21.
반응형

텍스트 파일에서 혼합된 데이터를 테이블로 가져오기

 

readtable 함수를 사용하여 텍스트 데이터와 숫자형 데이터가 혼합된 데이터를 테이블로 가져오고,

변수의 데이터형을 지정한 다음, 테이블에 새 변수를 추가하는 방법을 보여줍니다.

 

 

1. 텍스트 파일 읽기

T = readtable('outages.csv');
head(T,5)

ans=5×6 table

       Region           OutageTime        Loss     Customers     RestorationTime            Cause       

    _____________    ________________    ______    __________    ________________    ___________________

 

    {'SouthWest'}    2002-02-01 12:18    458.98    1.8202e+06    2002-02-07 16:50    {'winter storm'   }

    {'SouthEast'}    2003-01-23 00:49    530.14    2.1204e+05                 NaT    {'winter storm'   }

    {'SouthEast'}    2003-02-07 21:15     289.4    1.4294e+05    2003-02-17 08:14    {'winter storm'   }

    {'West'     }    2004-04-06 05:44    434.81    3.4037e+05    2004-04-06 06:10    {'equipment fault'}

    {'MidWest'  }    2002-03-16 06:18    186.44    2.1275e+05    2002-03-18 23:23    {'severe storm'   }

 

 

 

2. VariableNames

가져오기 옵션의 setvartype 함수를 사용하여 변수의 데이터형을 지정합니다. 먼저 파일에 대한 import options 객체를 생성합니다. 데이터 파일에는 여러 유형의 변수가 포함되어 있습니다. 첫 번째 변수와 마지막 변수를 categorical형 배열로 지정하고, 두 번째 변수와 다섯 번째 변수를 datetime형 배열로 지정하고, 나머지 변수는 double형으로 지정합니다.

 

 

 

opts = detectImportOptions('outages.csv');
varNames = opts.VariableNames ;
varTypes = {'categorical','datetime','double',...   
                'double','datetime','categorical'}; 
opts = setvartype(opts,varNames,varTypes);                      

T = readtable('outages.csv',opts);
head(T,5)

ans=5×6 table

     Region         OutageTime        Loss     Customers     RestorationTime          Cause     

    _________    ________________    ______    __________    ________________    _______________

 

    SouthWest    2002-02-01 12:18    458.98    1.8202e+06    2002-02-07 16:50    winter storm   

    SouthEast    2003-01-23 00:49    530.14    2.1204e+05                 NaT    winter storm   

    SouthEast    2003-02-07 21:15     289.4    1.4294e+05    2003-02-17 08:14    winter storm   

    West         2004-04-06 05:44    434.81    3.4037e+05    2004-04-06 06:10    equipment fault

    MidWest      2002-03-16 06:18    186.44    2.1275e+05    2002-03-18 23:23    severe storm  

 

 

- head :  5열까지 출력

- VariableNames : 컬럼이름 출력

- varTypes : type 

 

반응형

3. 테이블에 새 변수 추가하기

 

테이블 T에는 OutageTimeRestorationTime이 포함되어 있습니다. 각 정전의 지속 시간을 계산하고 이 데이터를 테이블에 추가합니다.

T.Duration = T.RestorationTime - T.OutageTime;
head(T,5)

 

T에 Duration 컬럼을 추가할 수 있습니다.

restorationtime과 outagetime 을 빼서, 새롭게 추가할 수 있습니다.

 

 

 

 

 

비디오 파일 읽어오기

1. 비디오 파일 읽기

 

비디오에서 특정 시간 또는 프레임 인덱스에서 시작하는 프레임을 읽어오거나 지정된 구간 내의 프레임을 읽어오거나 비디오 내 모든 프레임을 읽어옵니다.

vidObj = VideoReader('xylophone.mp4');

CurrentTime 속성을 설정하여 파일 시작부터 0.5초 후에 읽어오기가 시작되도록 지정합니다.

 

vidObj.CurrentTime = 0.5;

readFrame 메서드를 사용하여 파일 끝에 도달할 때까지 비디오 프레임을 읽어옵니다.

 

while hasFrame(vidObj)
    vidFrame = readFrame(vidObj);
    imshow(vidFrame)
    pause(1/vidObj.FrameRate);
end

allFrames = read(vidObj);
whos allFrames

  Name             Size                      Bytes  Class    Attributes

  allFrames      240x320x3x141            32486400  uint8             

 

 

- whos 를 사용해서 allFrames 의 속성을 출력할 수 있습니다.

 

 

2. 비디오 파일을 이미지로 출력할 수 있습니다.

 

VideoReader 생성

파일에서 프레임을 읽어 들이는 데 사용할 VideoReader를 만듭니다.

 

shuttleVideo = VideoReader('shuttle.avi');

이미지 시퀀스 생성

비디오를 따라 순환하면서 각 프레임을 img라는 너비×높이×3 배열로 읽어 들입니다. imgN.jpg 형식의 이름(여기서 N = 프레임 번호)을 사용하여 각 이미지를 JPEG 파일로 작성합니다.

 

| img001.jpg|

 

| img002.jpg|

 

| ...|

 

| img121.jpg|

 

ii = 1;

while hasFrame(shuttleVideo)
   img = readFrame(shuttleVideo);
   filename = [sprintf('%03d',ii) '.jpg'];
   fullname = fullfile(workingDir,'images',filename);
   imwrite(img,fullname)    % Write out to a JPEG file (img1.jpg, img2.jpg, etc.)
   ii = ii+1;
end

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'MATLAB' 카테고리의 다른 글

MATLAB 이미지인식 만들기  (0) 2022.01.30
MATLAB 조건문 / if switch, for , while ...  (0) 2022.01.24
matlab 완전 기초 주석추가 / 객체지향  (0) 2022.01.22
함수 function  (0) 2022.01.22
행렬과 배열  (0) 2022.01.21

댓글