[Compose] 파일을 읽고 저장하는 방법

  • Compose 를 이용해서 텍스트 파일을 읽고, 다시 파일로 저장하는 방법을 알아 보겠습니다.
  • 아래의 파일을 읽어서 화면에 출력해 보도록 하겠습니다.

그림1

  • 먼저 아래의 File Browser 를 이용해서 해당 파일이 있는 디렉토리를 선택해서 작업 디렉토리를 변경 합니다.

그림2

  • 파일을 읽어서 출력하는 것은 아래의 명령어와 같습니다.
  • 명령어 오른쪽에 설명을 추가했습니다.

file = ‘read1.txt’;               % 파일 이름을 file 이라는 변수에 할당
fid = fopen(file,'r’);       % read 속성으로 파일을 열어서 fid 변수에 할당
counter = 0;
while ~feof(fid)                % 파일의 마지막 까지 읽으면 while 을 종료함
counter = counter + 1;       % 숫자를 1부터 증가시킴
line = fgetl(fid);            % 한줄씩 읽이서 line 이라는 변수에 저장
sprintf(‘line %d in %s: %s’,counter,file,line)
% counter 변수, file 변수, line 변수에 저장된 값을 화면에 출력
end
fclose(fid)                          % 열었던 파일을 닫음

  • 출력 결과는 아래와 같습니다.
  • 이해를 돕기 위해 출력 명령어의 색을 다르게 하였고, 출력결과에도 명령어와 동일한 색으로 표현하였습니다.

 

그림3

  • 마지막 행의 ans = 0 은 fclose 가 성공적으로 실행되었을 때 출력되는 값입니다.

 

  • 생성한 내용을 파일에 저장하는 예를 살펴 보겠습니다.
  • 명령어는 아래와 같습니다.

fid = fopen(‘read2_1.txt’,’w’);
% 저장할 파일을 writing 속성으로 만들어서 열어서 fid 에 할당
fprintf(fid,’%10s %15s\n’,’node’,’displacement’);
% node 와 displacement 라는 문자를 해당 파일에 저장
for i = 1:100
fprintf(fid,’%10d %15s\n’,i,num2str(rand*10));
end
% 1에서 100 까지의 숫자를 1 열에 저장하고, 랜덤 숫자를 2열에 저장
fclose(fid);        % 열었던 파일을 닫음

 

  • 출력 결과는 아래와 같습니다.
  • %10d %15s 의 의미는 10칸 범위과 15칸 범위에 오른쪽 맞춤 기준으로 해당 값을 출력합니다.

그림4

 

 

 

This entry was posted in 미분류.

Comments are closed.