ch 4ch. 4 스크립트파일과 파일입출력 - prof. soon s....
TRANSCRIPT
CH 4 스크립트 파일과CH. 4 스크립트 파일과파일 입출력파일 입출력
학습 목표학습 목표
스크립트 파일의 구조와 구성을 이해하고 스크
립트 파일을 작성한다.1
파일 입출력에 관련된 명령어를 이해한다2 파일 입출력에 관련된 명령어를 이해한다.2작업공간 창 상의 변수를 파일로 저장하고 호
출하는 것을 이해한다.3
MATLAB PROGRAMMING CH. 4 2
매트랩을 이용한 프로그래밍매트랩을 이용한 프로그래밍
특정의 문제를 해결하기 위해서 매트랩의 명령어들을
매트랩의 명령어(내장함수)와 동일한 역할을 하는 사용자만의 명해서 매트랩의 명령어들을
나열한 파일일한 역할을 하는 사용자만의 명령어, 즉 사용자 정의 명령어, 역할을 하는 파일
MATLAB PROGRAMMING CH. 4 3
4.1 스크립트 파일 작성과 실행
4.1.1 스크립트 파일의 구성과 실행
스크립트 파일의 구성
변수: 명령어를 이용해서 계산할 데이터 매트랩 명령어: 다양한 연산자 또는 매트랩 내장함수 주석문: 스크립트 파일에 적어놓는 설명문으로서 %로주석문 립 파일에 적어놓는 설명문 서
시작한다.
스크립트 파일의 실행
명령어 창에서 스크립트 파일 이름으로 실행
매 랩은 립 파일이 함하는 첫 번째부터 마지막 까지의 변수
스크립트 파일의 실행
매트랩은 스크립트 파일이 포함하는 첫 번째부터 마지막 까지의 변수
정의 또는 명령어를 순차적으로 하나씩 실행하고 마친다. 이때 매트랩은
주석문을 실행하지 않는다
MATLAB PROGRAMMING CH. 4 4
주석문을 실행하지 않는다.
(예제 4-1)다음의 간단한 스크립트의 예를 보자. 이 스크립트는 피타고라스 정리를 이다음의 간단한 스크립트의 예를 보자. 이 스크립트는 피타고라스 정리를 이용하여 직각 삼각형의 빗변의 길이를 구하는 것이다.
MATLAB PROGRAMMING CH. 4 5
4.1.2 스크립트 파일의 작성 및 저장
매트랩 에디터 창 열기
매트랩의 File 메뉴 New를 클릭 제일 위의 Blank M File을 클릭
MATLAB PROGRAMMING CH. 4 6
스크립트 입력 - 예제4-1의 스크립트 예를 입력해보자.
MATLAB PROGRAMMING CH. 4 7
File 메뉴 SaveAs를 클릭 작성한 스크립트의 파일 이름을 지정
스크립트 저장하기
File 메뉴 SaveAs를 클릭 작성한 스크립트의 파일 이름을 지정
MATLAB PROGRAMMING CH. 4 8
4.1.3 스크립트 파일의 실행
스크립트 파일을 실행하는 방법은 두 가지가 있다.
ⅰ) 매트랩 에디터 창에서
→ Run 아이콘 을 클릭하여 실행
ⅱ) 매트랩의 명령어 창에서
→ 직접 스크립트 파일의 이름을 입력하고 Enter를 키를 눌러서 실행
MATLAB PROGRAMMING CH. 4 9
에디터 상에서 스크립트 실행
MATLAB PROGRAMMING CH. 4 10
명령어 창에서 스크립트 이름으로 실행명령어 창에서 스크립트 이름으로 실행
MATLAB PROGRAMMING CH. 4 11
MATLAB PROGRAMMING CH. 4 12
실행결과
MATLAB PROGRAMMING CH. 4 13
4.2 데이터 입력데이터 입력
4.2.1 input 명령어를 이용한 스칼라와 배열의 입력
input 명령어(내장함수)
스크립트 실행 시, 키보드를 이용하여 변수의 값을 대입하기 위해서 사용
p 명령어(내장함수)
변수 이름 = input(‘메세지’)
MATLAB PROGRAMMING CH. 4 14
(예제 4-3)예제 4-1의 스크립트에서 변수 side_x와 side_y를 input 명령어를 이용해서 값을초기화해 보자. 다음의 스크립트를 작성하여 "ex_4_3.m" 으로 저장한다.
MATLAB PROGRAMMING CH. 4 15
실행결과
MATLAB PROGRAMMING CH. 4 16
input 명령어를 이용해서 배열을 입력
커서가 깜박일 때 괄호 [ ] 사이에 원하는 배열의 원소값을 입력하고 enter를 입력
input 명령어를 이용해서 배열을 입력
MATLAB PROGRAMMING CH. 4 17
4.2.2 input 명령어를 이용한 문자열 입력p 명령어 이용 자 력
(‘ )변수 이름 = input(‘메세지’,s)
MATLAB PROGRAMMING CH. 4 18
4.3 데이터 출력
disp 명령어와 fprintf 명령어를 이용한 데이터 출력
MATLAB PROGRAMMING CH. 4 19
4.3.1 disp 명령어
disp 명령어를 이용해서 특정 변수의 값이나 또는 문자열로 구성된 메시지를명령어 창에 출력명령어 창에 출력
disp( 변수 이름 ) 또는 disp(‘메세지’)
MATLAB PROGRAMMING CH. 4 20
(예제 4-4)앞의 예제 4-3을 변형한 다음의 스크립트를 작성해서 실행해 보자.
MATLAB PROGRAMMING CH. 4 21
실행결과
MATLAB PROGRAMMING CH. 4 22
4.3.2 fprintf 명령어
fprintf 명령어는 명령어 창 또는 파일에 문자열 또는 변수값 또는 문자열과변수를 혼합해서 표시할 수 있게 해주는 명령어이다.
fprintf는 disp와는 달리 출력할 때 새로운 라인에서 출력하지 않고 명령어창의 프롬프트가 있는 곳에서 출력할 내용을 출력한다.
(1) 명령어 창에 fprintf를 이용한 출력
문자열 출력 : fprintf(‘문자열')
변수 값 출력 : fprintf('형식지정자1 형식지정자2 형식지정자3…', 변수1, 변수2, 변수3…)
변수와 문자열 혼합 출력 : fprintf('문자열 형식지정자 추가적인 문자열 ', 변수)
MATLAB PROGRAMMING CH. 4 23
형식지정자 설명
%d 부호가 있는 십진수의 정수로 출력
%f 고정 소수점으로 출력%f 고정 소수점으로 출력
%e 소문자 e를 이용한 지수로 출력
%E 대문자 E를 이용한 지수로 출력
%g정수형 변수는 정수로 출력, 소수점 값을 가지는 변수는 %e 또는 %f
%g중에서 짧은 쪽의 서식으로 출력
정수형 변수는 정수로 출력, 소수점 값을 가지는 변수는 %E 또는 %f%G
정수형 변수는 정수로 출력, 수점 값을 가지는 변수는 는
중에서 짧은 쪽의 서식으로 출력
%c 문자로 출력%c 문자로 출력
%s 문자열로 출력
MATLAB PROGRAMMING CH. 4 24
형식지정자를 이용한 변수 값의 출력 조절
정수형 데이터 출력
실수형 데이터 출력
MATLAB PROGRAMMING CH. 4 25
(예제 4-5)명령어 창에서 정수를 다음의 fprintf 명령을 실행하여 출력해 보자.
MATLAB PROGRAMMING CH. 4 26
(예제 4-6)명령어 창에서 실수를 다음의 fprintf 명령을 실행하여 출력해 보자. 명령어 창에서 실수를 다음의 p 명령을 실행하여 출력해 자
MATLAB PROGRAMMING CH. 4 27
(예제 4-7)프로그래밍 개론 과목에 대한 5명의 점수 [78 69 96 81 99]를 input 함수를 이용하여 저장하고 평균을 구한 다음 fprintf 명령어를 사용하여 출력하는 스크립트를 작성하라.
MATLAB PROGRAMMING CH. 4 28
실행결과
줄바꿈이 안되어서 결과를 보기가 어렵다.
줄바꿈을 하기위해서 이스케이프 문자가 필요
이스케이프 문자 (Escape Character)
\n 새로운 라인의 처음을 이동
\t 탭 문자
\b 백스페이스
MATLAB PROGRAMMING CH. 4 29
\b 백스페이스
예제 4-7을 이스케이프 문자를 넣어 다음과 같이 수정
MATLAB PROGRAMMING CH. 4 30
실행결과
MATLAB PROGRAMMING CH. 4 31
(2) fprintf를 이용해 파일에 출력하기
fprintf 명령어를 이용하여 파일에 변수의 값이나 메시지를 출력할 수 있다.
MATLAB PROGRAMMING CH. 4 32
(1 단계) – 파일 열기
파일을 열기위해서는 fopen 명령어를 사용하고 형식은 다음과 같다.p
fileID = fopen('파일이름','허용권한')
허용권한
파일이름r (읽기) w (쓰기) a (추가)
파일에 있는 기존의 내용
이미 존재하는 파일
읽기 위해 파일을 연다.
파일안에 쓰여져있던 기
존의 내용이 삭제된 채 파
일이 열린다
파일에 있는 기존의 내용
이 유지된 채, 새로운 내
용을 추가하기 위해서 파이미 존재하는 파일 일이 열린다.일이 열린다.
fopen 명령어가 양수를 리턴
정상적으로 동작하지 않
입력된 이름을 가지는 파
일을 현재 디렉토리에 생w(쓰기)와 동일하다
존재하지 않는 파일
(생성할 파일)
는다. 성하고 내용를 입력하기
위해 연다.
w(쓰기)와 동일하다.
f 명령어가 음수를
MATLAB PROGRAMMING CH. 4 33
fopen 명령어가 음수를
리턴fopen 명령어가 양수를 리턴
(2 단계)- 파일에 출력
fopen 명령어로 파일을 열고 난 후, fprintf 명령어로 내용를 파일에 쓸 수 있다.
fprintf('파일식별자','문자열 형식지정자 추가적인 문자열 ', 변수)
(3 단계) 파일 닫기(3 단계)- 파일 닫기
fclose 명령어를 사용하여 파일을 닫는다.
fclose('파일식별자‘)
MATLAB PROGRAMMING CH. 4 34
(예제 4-8)벡터 [ 30 21 11 32 53 77 27 35 9 2 ]를 i 명령어로 변수에 대입하여 평균 중벡터 [ 30 21 11 32 53 77 27 35 9 2 ]를 input 명령어로 변수에 대입하여 평균, 중앙값, 최대값, 최소값을 구하여 result_4_8.txt 파일에 아래와 같이 저장하는 스크립트를 작성하시오.
MATLAB PROGRAMMING CH. 4 35
( 풀이 )
MATLAB PROGRAMMING CH. 4 36
( 실행 결과 )
MATLAB PROGRAMMING CH. 4 37
4.4 작업공간 창의 변수의 저장과 호출
4.4.1 save 명령어
작업공간 창에 있는 변수 전체 또는 일부를 파일로 저장할 수 있는 명령어
파일의 형식 확장자가 mat인 바이너리 파일 ascii 코드를 형식의 텍스트 파일
< 변수 전체를 저장할 때,>
<원하는 변수만 저장할 때>
MATLAB PROGRAMMING CH. 4 38
(예제 4-9)변수 A x y를 정의한 후 save 명령어를 이용해서 mat 파일과 ascii 파일로 저장하변수 A, x, y를 정의한 후 save 명령어를 이용해서 mat 파일과 ascii 파일로 저장하라.
MATLAB PROGRAMMING CH. 4 39
(생성된 파일 확인)
MATLAB PROGRAMMING CH. 4 40
4.4.2 load 명령어
load 명령어는 save 명령어로 저장된 변수들을 작업공간 창으로 호출하여 사용할 수 있게 하는 명령어
load 명령어로 mat 파일과 ascii 파일에 저장된 변수를 호출할 수 있다.
< mat 파일을 호출할 때 >
MATLAB PROGRAMMING CH. 4 41
< ascii 파일을 호출할 때 >
MATLAB PROGRAMMING CH. 4 42
(예제 4-10)save 명령어를 이용해서 [4 2 -7; 9 8 12] 값을 가지는 변수를 “one_var_ascii.txt” 파일로 아래의 그림과 같이 저장하라 그리고 clear 명령어로 작업공간 창의 모든파일로 아래의 그림과 같이 저장하라. 그리고 clear 명령어로 작업공간 창의 모든변수를 삭제한다. 이제 예제 4-9에서 save 명령어를 이용해서 생성한“variables.mat” 파일과 “variables_ascii.txt”, 그리고 새로 생성한“one var ascii txt” 파일의 변수를 작업공간 창으로 호출하라one_var_ascii.txt 파일의 변수를 작업공간 창으로 호출하라.
MATLAB PROGRAMMING CH. 4 43
(풀이)
MATLAB PROGRAMMING CH. 4 44
공학예제
MATLAB PROGRAMMING CH. 4 45
MATLAB PROGRAMMING CH. 4 46
MATLAB PROGRAMMING CH. 4 47
( 실행결과 )
MATLAB PROGRAMMING CH. 4 48