-
[MATLAB] 매트랩에서 결과값 .txt 파일로 저장하기카테고리 없음 2026. 3. 11. 19:56
연구를 하다보면 동일한 데이터를 각자 다른 알고리즘, 필터를 통해 결과값을 내는 경우가 있다.
그럴 때, 한 곳에 그래프를 모아서 그리기 위해서 코드를 따로 작성할 필요 없이 MATLAB결과값을 .txt 또는 .mat 데이터로 저장하는 방법을 기록해둔다.
subroutine실행 결과 저장
Run_Subroutine output_data = [t', Zsaved, Xsaved]; writematrix(output_data,'result1.txt','Delimiter','tab');Run_Subroutine을 실행하면 다음과 같은 변수들이 저장된다.

여기서 Zsaved는 측정한 값, Xsaved는 추정한 값이다. t는 시간 데이터이다.
시간 데이터와 측정치, 추정치를 output_data에 저장한 뒤, writematrix함수를 사용하여 'result1.txt'이라는 파일로 저장한다.
txt파일 데이터 하나의 그래프에 그리기
clear all; figure; set(gcf,'Color','w'); %dir : listup file or directory as structure file_info=dir('res_*.txt'); colors = lines(4); for i = 1:4 file_path = file_info(i).name; data = readmatrix(file_path); t_data = data(:,1)+1; filtered_data = data(:,3); plot(t_data, filtered_data, 'Color',colors(i,:),'LineWidth',1.5, 'DisplayName',file_path); hold on; end measured_data = data(:,2); plot(t_data, measured_data, 'r.'); grid on xlabel('doy [day]'); ylabel('F10.7 [SFU]'); legend('Filter1','Filter2','Filter3','Filter4','Measured','show', 'Location','best');dir은 현재 폴더에 있는 파일과 폴더를 나열하는 함수이다.
res_{필터 이름}으로 저장해두고 하나하나 적기 귀찮아서 res_*으로 한번에 가져올 수 있도록 코드를 작성했다.
4개의 파일 데이터를 모두 하나의 plot에 나타내야하므로 for문을 사용하여 하나씩 그려준다. hold on 써주는 건 기본
hold on 명령어는 plot을 하나 그리고 뒤이어 작성해주면 닫혀있는 그래프를 그릴 수 있다.


열린 그래프와 닫힌 그래프의 차이 dir을 통해 저장한 file_info는 구조체 형태로 저장되므로 파일명에 접근하기 위해서 .name를 사용한다.

이제 저장된 데이터를 꺼내와서 하나씩 그려주면 된다. color은 lines라는 함수로 선 컬러맵 배열을 만들 수 있다.