본문 바로가기

Software/MATLAB

MATLAB의 MAT화일 관리 어떻게 하십니까.

어떤 언어든 사용빈도가 높아지면, 데이터관리의 필요성을 느끼게됩니다. MATLAB도 예외는 아닌데요. 보통은 화일이름으로 구분을 두고, 또 폴더명으로 구분을 두죠.^^. 그런데 그 수준도 넘어서는 경우는 어떻할까요??

MATLAB의 주 화일 형식인 m-file은 그냥 프로그램 제일 위에 주석을 달면 되니까 편합니다.
Simulink 화일인 mdl화일도 제가 이야기한 적이 있는 annotation[관련글]을 이용하면 편합니다.

그런데 데이터 화일은 mat 화일은 어떻게 할까요.
제 주위 후배들을 보니 대체로 가장 많이 쓰는 것이 mat화일과 같은 이름의 m-file을 만들어 해당 mat화일도 엑세스할겸 거기다 주석을 달아서 관리하더군요.

그러나 만약, 동일한 엑세스 코드에 데이터만 바뀐다면 또 어떻게할까요.

실험을 몇일이고 수행하면서 하루에도 수백번 실험을 해야할때가 많아지면서 불어나는 데이터는 관리하기가 만만치 않습니다.

이번엔 저는 structure 데이터 형식을 이용해서 mat화일에 일종의 주석을 다는 것을 이야기해볼까 합니다. 이렇게 한 이유는 화일에 자체적으로 다는 주석은 저처럼 current folder를 화일이름만 딸랑 나오게 좁혀놓고 사용하는 경우 유용한데요.


일단, y1, y2라는 데이터가 있다고 치죠. 그러면 data.y1, data.y2 이렇게 dot(.)을 사용해서 저장을 합니다. 그러면 workspace에 data라는 structure 형식의 데이터만 나타납니다.


그리고, 위에서처럼 입력하고 싶은 주석을 넣는거죠.


structure로 입력된 데이터를 사용하는 것은 위와 같이 저장할 때와 같습니다.


data라는 변수를 workspace로 보면 위와 같이 나타나죠. 변수의 의미와 x-y축의 단위 등을 입력해두변 관리하기가 편할 겁니다. 

이런 상황도 생각할 볼 수 있습니다.

아예,
data.Xdim, data.Ydim, data.dateOfExp, data.personOfExp

등의 변수를 structure에 같이 입력함으로서 수백 수천개의 데이터화일에서

누가 실험한 데이터가 뭐더라?? 혹은 몇일에 실험했던게 뭐더라 등등을 찾을때 eval[관련글]명령과 함께 사용하면 아주 유용합니다.

아.. 그리고


workspace의 data를 mat화일로 저장해주면 되겠죠^^


반응형