본문 바로가기
Major/Programming

MATLAB Figure 파일에서 데이터 추출하기

by 우프 2022. 6. 22.
반응형

*.fig 파일 실행 후 다음 명령어 사용.

a = get(gca,'Children');
xdata = get(a,'XData');
ydata = get(a, 'YData');
zdata = get(a, 'ZData');

▶ Figure에 여러개의 그래프가 있는 경우: data가 cell로 저장되어 있으므로 cell에서 행렬 형태로 다음과 같이 원하는 그래프만 저장

x1 = xdata{1};
y1 = ydata{1};

x2 = xdata{2};
y2 = ydata{2};

csvwrite('ScatteredField.csv',[x1', y1', y2', y3', y4', y5']);

- 이 경우 문제는 Figure의 legend 순서대로 data들이 저장되지 않음 > 따라서 여러개 그래프의 경우 저장된 data가 뭐가 뭔지 모름

▶ Figure에서 여러개 그래프 중 원하는 그래프만 남기고 (즉, 나머지 그래프는 삭제) 위의 형태로 data 저장하면 cell이 아닌 일반적인 행렬 변수로 저장됨

- 원하는 그래프 하나만 남기고 나머지는 삭제 (플롯 브라우저에서 다수 선택후 삭제)한 후 데이터 저장 > Cntrl+Z로 원래 상태로 복귀 후 다음 저장할 그래프만 남기고 나머지는 삭제 후 데이터 저장 과정 반복 

ydata = get(get(gca,'Children'), 'YData');

- 어떤 데이터를 저장하는지 확실히 보이기 때문에 가장 실수가 없을 방법임

- 귀찮더라도 그래프 하나씩 저장하는 것이 효율적인 듯~

반응형

댓글