ch 4ch. 4 스크립트파일과 파일입출력 - prof. soon s....

48
CH 4 스크립트 파일과 CH. 4 스크립트 파일과 파일 입출력 파일 입출력

Upload: vanmien

Post on 01-Apr-2019

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

CH 4 스크립트 파일과CH. 4 스크립트 파일과파일 입출력파일 입출력

Page 2: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

학습 목표학습 목표

스크립트 파일의 구조와 구성을 이해하고 스크

립트 파일을 작성한다.1

파일 입출력에 관련된 명령어를 이해한다2 파일 입출력에 관련된 명령어를 이해한다.2작업공간 창 상의 변수를 파일로 저장하고 호

출하는 것을 이해한다.3

MATLAB PROGRAMMING CH. 4 2

Page 3: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

매트랩을 이용한 프로그래밍매트랩을 이용한 프로그래밍

특정의 문제를 해결하기 위해서 매트랩의 명령어들을

매트랩의 명령어(내장함수)와 동일한 역할을 하는 사용자만의 명해서 매트랩의 명령어들을

나열한 파일일한 역할을 하는 사용자만의 명령어, 즉 사용자 정의 명령어, 역할을 하는 파일

MATLAB PROGRAMMING CH. 4 3

Page 4: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

4.1 스크립트 파일 작성과 실행

4.1.1 스크립트 파일의 구성과 실행

스크립트 파일의 구성

변수: 명령어를 이용해서 계산할 데이터 매트랩 명령어: 다양한 연산자 또는 매트랩 내장함수 주석문: 스크립트 파일에 적어놓는 설명문으로서 %로주석문 립 파일에 적어놓는 설명문 서

시작한다.

스크립트 파일의 실행

명령어 창에서 스크립트 파일 이름으로 실행

매 랩은 립 파일이 함하는 첫 번째부터 마지막 까지의 변수

스크립트 파일의 실행

매트랩은 스크립트 파일이 포함하는 첫 번째부터 마지막 까지의 변수

정의 또는 명령어를 순차적으로 하나씩 실행하고 마친다. 이때 매트랩은

주석문을 실행하지 않는다

MATLAB PROGRAMMING CH. 4 4

주석문을 실행하지 않는다.

Page 5: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

(예제 4-1)다음의 간단한 스크립트의 예를 보자. 이 스크립트는 피타고라스 정리를 이다음의 간단한 스크립트의 예를 보자. 이 스크립트는 피타고라스 정리를 이용하여 직각 삼각형의 빗변의 길이를 구하는 것이다.

MATLAB PROGRAMMING CH. 4 5

Page 6: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

4.1.2 스크립트 파일의 작성 및 저장

매트랩 에디터 창 열기

매트랩의 File 메뉴 New를 클릭 제일 위의 Blank M File을 클릭

MATLAB PROGRAMMING CH. 4 6

Page 7: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

스크립트 입력 - 예제4-1의 스크립트 예를 입력해보자.

MATLAB PROGRAMMING CH. 4 7

Page 8: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

File 메뉴 SaveAs를 클릭 작성한 스크립트의 파일 이름을 지정

스크립트 저장하기

File 메뉴 SaveAs를 클릭 작성한 스크립트의 파일 이름을 지정

MATLAB PROGRAMMING CH. 4 8

Page 9: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

4.1.3 스크립트 파일의 실행

스크립트 파일을 실행하는 방법은 두 가지가 있다.

ⅰ) 매트랩 에디터 창에서

→ Run 아이콘 을 클릭하여 실행

ⅱ) 매트랩의 명령어 창에서

→ 직접 스크립트 파일의 이름을 입력하고 Enter를 키를 눌러서 실행

MATLAB PROGRAMMING CH. 4 9

Page 10: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

에디터 상에서 스크립트 실행

MATLAB PROGRAMMING CH. 4 10

Page 11: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

명령어 창에서 스크립트 이름으로 실행명령어 창에서 스크립트 이름으로 실행

MATLAB PROGRAMMING CH. 4 11

Page 12: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

MATLAB PROGRAMMING CH. 4 12

Page 13: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

실행결과

MATLAB PROGRAMMING CH. 4 13

Page 14: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

4.2 데이터 입력데이터 입력

4.2.1 input 명령어를 이용한 스칼라와 배열의 입력

input 명령어(내장함수)

스크립트 실행 시, 키보드를 이용하여 변수의 값을 대입하기 위해서 사용

p 명령어(내장함수)

변수 이름 = input(‘메세지’)

MATLAB PROGRAMMING CH. 4 14

Page 15: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

(예제 4-3)예제 4-1의 스크립트에서 변수 side_x와 side_y를 input 명령어를 이용해서 값을초기화해 보자. 다음의 스크립트를 작성하여 "ex_4_3.m" 으로 저장한다.

MATLAB PROGRAMMING CH. 4 15

Page 16: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

실행결과

MATLAB PROGRAMMING CH. 4 16

Page 17: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

input 명령어를 이용해서 배열을 입력

커서가 깜박일 때 괄호 [ ] 사이에 원하는 배열의 원소값을 입력하고 enter를 입력

input 명령어를 이용해서 배열을 입력

MATLAB PROGRAMMING CH. 4 17

Page 18: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

4.2.2 input 명령어를 이용한 문자열 입력p 명령어 이용 자 력

(‘ )변수 이름 = input(‘메세지’,s)

MATLAB PROGRAMMING CH. 4 18

Page 19: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

4.3 데이터 출력

disp 명령어와 fprintf 명령어를 이용한 데이터 출력

MATLAB PROGRAMMING CH. 4 19

Page 20: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

4.3.1 disp 명령어

disp 명령어를 이용해서 특정 변수의 값이나 또는 문자열로 구성된 메시지를명령어 창에 출력명령어 창에 출력

disp( 변수 이름 ) 또는 disp(‘메세지’)

MATLAB PROGRAMMING CH. 4 20

Page 21: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

(예제 4-4)앞의 예제 4-3을 변형한 다음의 스크립트를 작성해서 실행해 보자.

MATLAB PROGRAMMING CH. 4 21

Page 22: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

실행결과

MATLAB PROGRAMMING CH. 4 22

Page 23: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

4.3.2 fprintf 명령어

fprintf 명령어는 명령어 창 또는 파일에 문자열 또는 변수값 또는 문자열과변수를 혼합해서 표시할 수 있게 해주는 명령어이다.

fprintf는 disp와는 달리 출력할 때 새로운 라인에서 출력하지 않고 명령어창의 프롬프트가 있는 곳에서 출력할 내용을 출력한다.

(1) 명령어 창에 fprintf를 이용한 출력

문자열 출력 : fprintf(‘문자열')

변수 값 출력 : fprintf('형식지정자1 형식지정자2 형식지정자3…', 변수1, 변수2, 변수3…)

변수와 문자열 혼합 출력 : fprintf('문자열 형식지정자 추가적인 문자열 ', 변수)

MATLAB PROGRAMMING CH. 4 23

Page 24: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

형식지정자 설명

%d 부호가 있는 십진수의 정수로 출력

%f 고정 소수점으로 출력%f 고정 소수점으로 출력

%e 소문자 e를 이용한 지수로 출력

%E 대문자 E를 이용한 지수로 출력

%g정수형 변수는 정수로 출력, 소수점 값을 가지는 변수는 %e 또는 %f

%g중에서 짧은 쪽의 서식으로 출력

정수형 변수는 정수로 출력, 소수점 값을 가지는 변수는 %E 또는 %f%G

정수형 변수는 정수로 출력, 수점 값을 가지는 변수는 는

중에서 짧은 쪽의 서식으로 출력

%c 문자로 출력%c 문자로 출력

%s 문자열로 출력

MATLAB PROGRAMMING CH. 4 24

Page 25: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

형식지정자를 이용한 변수 값의 출력 조절

정수형 데이터 출력

실수형 데이터 출력

MATLAB PROGRAMMING CH. 4 25

Page 26: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

(예제 4-5)명령어 창에서 정수를 다음의 fprintf 명령을 실행하여 출력해 보자.

MATLAB PROGRAMMING CH. 4 26

Page 27: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

(예제 4-6)명령어 창에서 실수를 다음의 fprintf 명령을 실행하여 출력해 보자. 명령어 창에서 실수를 다음의 p 명령을 실행하여 출력해 자

MATLAB PROGRAMMING CH. 4 27

Page 28: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

(예제 4-7)프로그래밍 개론 과목에 대한 5명의 점수 [78 69 96 81 99]를 input 함수를 이용하여 저장하고 평균을 구한 다음 fprintf 명령어를 사용하여 출력하는 스크립트를 작성하라.

MATLAB PROGRAMMING CH. 4 28

Page 29: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

실행결과

줄바꿈이 안되어서 결과를 보기가 어렵다.

줄바꿈을 하기위해서 이스케이프 문자가 필요

이스케이프 문자 (Escape Character)

\n 새로운 라인의 처음을 이동

\t 탭 문자

\b 백스페이스

MATLAB PROGRAMMING CH. 4 29

\b 백스페이스

Page 30: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

예제 4-7을 이스케이프 문자를 넣어 다음과 같이 수정

MATLAB PROGRAMMING CH. 4 30

Page 31: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

실행결과

MATLAB PROGRAMMING CH. 4 31

Page 32: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

(2) fprintf를 이용해 파일에 출력하기

fprintf 명령어를 이용하여 파일에 변수의 값이나 메시지를 출력할 수 있다.

MATLAB PROGRAMMING CH. 4 32

Page 33: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

(1 단계) – 파일 열기

파일을 열기위해서는 fopen 명령어를 사용하고 형식은 다음과 같다.p

fileID = fopen('파일이름','허용권한')

허용권한

파일이름r (읽기) w (쓰기) a (추가)

파일에 있는 기존의 내용

이미 존재하는 파일

읽기 위해 파일을 연다.

파일안에 쓰여져있던 기

존의 내용이 삭제된 채 파

일이 열린다

파일에 있는 기존의 내용

이 유지된 채, 새로운 내

용을 추가하기 위해서 파이미 존재하는 파일 일이 열린다.일이 열린다.

fopen 명령어가 양수를 리턴

정상적으로 동작하지 않

입력된 이름을 가지는 파

일을 현재 디렉토리에 생w(쓰기)와 동일하다

존재하지 않는 파일

(생성할 파일)

는다. 성하고 내용를 입력하기

위해 연다.

w(쓰기)와 동일하다.

f 명령어가 음수를

MATLAB PROGRAMMING CH. 4 33

fopen 명령어가 음수를

리턴fopen 명령어가 양수를 리턴

Page 34: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

(2 단계)- 파일에 출력

fopen 명령어로 파일을 열고 난 후, fprintf 명령어로 내용를 파일에 쓸 수 있다.

fprintf('파일식별자','문자열 형식지정자 추가적인 문자열 ', 변수)

(3 단계) 파일 닫기(3 단계)- 파일 닫기

fclose 명령어를 사용하여 파일을 닫는다.

fclose('파일식별자‘)

MATLAB PROGRAMMING CH. 4 34

Page 35: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

(예제 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

Page 36: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

( 풀이 )

MATLAB PROGRAMMING CH. 4 36

Page 37: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

( 실행 결과 )

MATLAB PROGRAMMING CH. 4 37

Page 38: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

4.4 작업공간 창의 변수의 저장과 호출

4.4.1 save 명령어

작업공간 창에 있는 변수 전체 또는 일부를 파일로 저장할 수 있는 명령어

파일의 형식 확장자가 mat인 바이너리 파일 ascii 코드를 형식의 텍스트 파일

< 변수 전체를 저장할 때,>

<원하는 변수만 저장할 때>

MATLAB PROGRAMMING CH. 4 38

Page 39: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

(예제 4-9)변수 A x y를 정의한 후 save 명령어를 이용해서 mat 파일과 ascii 파일로 저장하변수 A, x, y를 정의한 후 save 명령어를 이용해서 mat 파일과 ascii 파일로 저장하라.

MATLAB PROGRAMMING CH. 4 39

Page 40: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

(생성된 파일 확인)

MATLAB PROGRAMMING CH. 4 40

Page 41: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

4.4.2 load 명령어

load 명령어는 save 명령어로 저장된 변수들을 작업공간 창으로 호출하여 사용할 수 있게 하는 명령어

load 명령어로 mat 파일과 ascii 파일에 저장된 변수를 호출할 수 있다.

< mat 파일을 호출할 때 >

MATLAB PROGRAMMING CH. 4 41

Page 42: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

< ascii 파일을 호출할 때 >

MATLAB PROGRAMMING CH. 4 42

Page 43: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

(예제 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

Page 44: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

(풀이)

MATLAB PROGRAMMING CH. 4 44

Page 45: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

공학예제

MATLAB PROGRAMMING CH. 4 45

Page 46: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

MATLAB PROGRAMMING CH. 4 46

Page 47: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

MATLAB PROGRAMMING CH. 4 47

Page 48: CH 4CH. 4 스크립트파일과 파일입출력 - Prof. Soon S. Jarngssjarng.chosun.ac.kr/matlab/chapter04.pdf · 2017-05-29 · matlab programming ch. 4 33 open

( 실행결과 )

MATLAB PROGRAMMING CH. 4 48