슬라이드 1

Similar documents
[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap06-2pointer.ppt

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - additional01.ppt [호환 모드]

Microsoft Word - PLC제어응용-2차시.doc

슬라이드 1

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

Microsoft PowerPoint - e pptx

Microsoft PowerPoint - web-part01-ch05-함수.pptx

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

PowerPoint 프레젠테이션

설계란 무엇인가?

11장 포인터

PowerPoint Presentation

C 프로그램의 기본

Microsoft PowerPoint - ch07 - 포인터 pm0415

OCW_C언어 기초

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

이 장에서 사용되는 MATLAB 명령어들은 비교적 복잡하므로 MATLAB 창에서 명령어를 직접 입력하지 않고 확장자가 m 인 text 파일을 작성하여 실행을 한다

Microsoft PowerPoint - chap06-5 [호환 모드]

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - chap06-1Array.ppt

슬라이드 1

슬라이드 1

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

System Recovery 사용자 매뉴얼

UI TASK & KEY EVENT

<B4EBC7D0BCF6C7D02DBBEFB0A2C7D4BCF62E687770>

MATLAB for C/C++ Programmers

OCW_C언어 기초

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

PowerPoint 프레젠테이션

금오공대 컴퓨터공학전공 강의자료

MATLAB for C/C++ Programmers

PowerPoint Template

<4D F736F F F696E74202D2034C5D8BDBAC6AEC6C4C0CFC0D4C3E2B7C2312E505054>

tiawPlot ac 사용방법

Microsoft PowerPoint 세션.ppt

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

Python과 함께 배우는 신호 해석 제 5 강. 복소수 연산 및 Python을 이용한 복소수 연산 (제 2 장. 복소수 기초)

Microsoft PowerPoint UNIX Shell.ppt

PowerPoint 프레젠테이션

Microsoft PowerPoint 웹 연동 기술.pptx

강의 개요

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Microsoft PowerPoint - [2009] 02.pptx

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

C 언어 프로그래밊 과제 풀이

Tcl의 문법

C언어 및 실습 C Language and Practice

Frama-C/JESSIS 사용법 소개

Microsoft PowerPoint - chap-03.pptx

특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가

1 1 장. 함수와극한 1.1 함수를표현하는네가지방법 1.2 수학적모형 : 필수함수의목록 1.3 기존함수로부터새로운함수구하기 1.4 접선문제와속도문제 1.5 함수의극한 1.6 극한법칙을이용한극한계산 1.7 극한의엄밀한정의 1.8 연속

Microsoft PowerPoint - chap05-제어문.pptx

PowerPoint Presentation

PowerPoint 프레젠테이션

윈도우즈프로그래밍(1)

<C6F7C6AEB6F5B1B3C0E72E687770>

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

PowerPoint Presentation

Java ...

17장 클래스와 메소드

쉽게 풀어쓴 C 프로그래밍

PowerPoint 프레젠테이션

Microsoft PowerPoint - C++ 5 .pptx

PowerPoint 프레젠테이션

PowerPoint Presentation

Microsoft PowerPoint - Lesson2.pptx

PowerPoint 프레젠테이션

Microsoft PowerPoint UNIX Shell.pptx

Microsoft Word - FunctionCall

Microsoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)

금오공대 컴퓨터공학전공 강의자료

Columns 8 through while expression {commands} 예제 1.2 (While 반복문의이용 ) >> num=0

PowerPoint Presentation

Microsoft PowerPoint - chap10-함수의활용.pptx

BMP 파일 처리

PowerPoint Presentation

슬라이드 1

프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013.

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - LA_ch6_1 [호환 모드]

Microsoft PowerPoint - ch01.ppt

슬라이드 1

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

C 프로그래밊 개요

KNK_C_05_Pointers_Arrays_structures_summary_v02

Microsoft PowerPoint - chap11.ppt [호환 모드]

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

PowerPoint Presentation

Transcription:

공학컴퓨터활용입문 강의 4: Matlab 사용법 충남대학교메카트로닉스공학과

2.8 입출력하기 2.8.1 입력명령어 키보드로부터데이터를입력받을때사용하는명령어로는 input 이있으며그형식은다음과같다 (interactive programming). var = input( Enter var : ) 명령어가실행되면 Enter var : 가화면에나타나며, 데이터를입력하고 <Enter> 키를누를때까지기다린다. <Enter> 키를누르면입력한값이 var 에할당된다. 2

2.8 입출력하기 2.8.2 출력명령어 앞서살펴보았듯이명령어끝에세미콜론 (;) 을생략하고 <Enter> 키를누르면자동적으로그결과를화면에표시해준다. Matlab 이제공하는기본설정에의하면변수값은소수점이하 4 자리수의고정소수점으로표시해주지만 format 명령어로변경할수있다. format short : 소수점이하 4 자리수의고정소수점으로표시해준다. format long : 소수점이하 15 자리수의고정소수점으로표시해준다. 3

2.8 입출력하기 2.8.2.1 화면출력 자동출력기능외에화면출력을해주는명령어로 disp 와 fprintf 가있다. disp(var) : var 의값을기본설정으로화면에출력해준다. fprintf( format, var1, var2) : 두변수 var1, var2 를지정된형식으로화면에출력한다. fprintf 명령어를사용할때형식지정은작은따옴표 ( ) 안에두며다음세요소들의결합으로된문자열이다. 1) 연산자 %w.pc : 퍼센트기호 (%) 로시작하고변환문자 c 로마친다. w 는필드폭을, p 는소수점이하의자리수를의미한다. 자주사용되는변환문자는다음과같다. d 또는 i : 정수형 (32 비트 ) e : 지수형 ( 예, 1.123456e+0.01) f : 고정소수점형 ( 예, 123.45678) s : 문자열형 4

2.8 입출력하기 2.8.2.1 화면출력 2) 출력될문자 3) 이스케이프문자 : 다음문자를포함하며더자세한것은도움말창에서찾을수있다. \n \a \b : New line : Alarm : Backspace 5

2.8 입출력하기 2.8.2.1 화면출력 변수가배열일경우에 Matlab 은첫째열, 둘째열,, 마지막열순으로원소들을차례로출력해주기때문에사용시주의해야한다. 6

2.8 입출력하기 2.8.2.1 화면출력 앞선예시에서원래의 buf 와같은모양으로출력하려면아래와같이하면된다. 7

2.8 입출력하기 2.8.2.2 파일에데이터저장하기 fprintf 명령어는값을화면엔출력해주는것외에도파일에저장하는데도사용할수있으며, 저장된파일은추후다른프로그램에서불러사용할수도있다. fprintf 명령어로값을파일에저장할경우에는 fopen, fclose 명령어와함께쓰이며이들의형식은다음과같다. 8

2.8 입출력하기 2.8.2.2 파일에데이터저장하기 자주사용되는 permission 코드는다음과같다. r : 읽기파일을연다 ( 기본설정 ) w : 쓰기파일을연다. 파일이없으면새로만들고, 파일이존재할경우에는기존의저장된내용들이삭제된다. a : 기존의파일을열어그끝에추가한다. 새로운파일 fname3 에 x, y, z 세데이터를저장하고확인해주는예 9

2.8 입출력하기 2.8.2.3 파일에서데이터읽기 형식을갖춰파일에저장된값은 fopen, fclose 명령어와함께 fscanf 명령어로읽을수있다. fscanf 의형식은다음과같다. 자주사용되는 filterspec은다음과같다. *.dat : 확장자 dat를가지는파일 *.m : 확장자 m을가지는 m-파일 *.* : 모든파일 10

2.8 입출력하기 2.8.2.3 파일에서데이터읽기 다음은 3x4 난수를발생시켜 fname4 파일에저장하고, 다시저장된데이터를읽는예를보여준다. 11

2.8 입출력하기 2.8.2.3 파일에서데이터읽기 다음은다이얼로그박스에서선택한파일명으로부터데이터를읽어화면에보여주는예이다. 만약다이얼로그박스에서 fname4.dat 를선택한다면실행된결과는위의경우와같게된다. 12

2.9.1 함수 m- 파일 수식이나알고리즘의전부또는일부를모듈화하여반복적으로사용할필요가있다면사용자정의함수를만들어놓으면큰도움이된다. 사용자정의함수란사용자가함수형태로작성해놓은프로그램을말하며이를파일에저장한것을함수 m- 파일이라한다. 2.9.1.1 함수의형식 함수는첫실행문이 function 으로시작되며그형식은출력인수, 등호, 함수명과입력인수순으로되어있다. 입력인수는외부프로그램으로부터함수내로데이터를받는역할을해주고, 출력인수는계산된결과를함수밖으로전달하는역할을해준다. 13

2.9.1.1 함수의형식 함수작성시유의사항은다음과같다. 1) 함수는입력인수와출력인수를전혀갖지않거나, 하나또는여러개를가질수있다. 2 개이사이면콤마로구분하고나열하면된다. 2) 만약입력인수를갖지않을때에는 (in_arg1, in_arg2) 를, 출력인수를갖지않을때에는 [out_arg1, out_arg2] = 를생략하면된다. 또출력인수가 1 개뿐일때는대괄호 ([ ]) 없이나타낼수있다. 3) 출력인수들을가질경우에는이들은함수프로그램내에서반드시값을할당받아야한다. 4) 함수를파일에저장할때에는파일명이함수명과서로같도록저장해줘야추후에함수명으로함수를호출할수있다. 14

2.9.1.1 함수의형식 벡터놈은스칼라이며다음식으로정의되기도한다. 이를계산해주는함수를 Matlab 내장함수 norm 과중복이되지않도록함수명을 MyNorm 으로, 입력인수를 x, 출력인수를 xnorm 으로하여작성해보면다음과같다. 15

2.9.1.1 함수의형식 출력인수를둘필요가없는예시 입력인수를둘필요가없는예시 16

2.9.1.2 함수파일의저장 저장버튼또는 < 저장 > < 다른이름으로저장 > 을누르면파일명을입력하라는별도의창이나타나며, 여기에입력하고아래쪽 < 저장 > 을누르면저장된다. 이때파일명은함수명과일치되게해줄필요가있다. 새함수를저장할때에는함수명이자동으로박스에나타나므로 < 저장 > 버튼을누르기만하면된다. 사용자가별도로폴더를지정하지않으면현재의폴더에저장된다. 일반적으로함수파일에는함수하나만담는것이보편적이지만, 예속된함수가있을때는이들을묶어한파일에담을수도있다. 파일하나에여러개의함수들이존재할때에는맨앞에오는함수를주함수라하고나머지함수들을부함수라한다. 주함수는명령창이나스크립트나외부함수에서불러쓸수있지만, 부함수는파일내의주함수와다른부함수에서만호출될수있고순서와는상관없이작성하면된다. 파일을저장할때에는파일명이주함수명과일치되도록해야한다. 17

2.9.1.3 함수의호출 함수를만들어파일에저장해놓으면사용자는이를내장함수 (cos, sqrt, exp 등 ) 와같이불러쓸수있다. 함수호출은명령창이나스크립트또는다른함수에서할수있으며, 입출력인수를준비해서함수명으로호출하면제어권이피호출함수 ( 호출되는함수 ) 로넘어가게된다. 피호출함수에서실행이완료되면제어권은다시호출한스크립트나함수내의다음명령으로넘어가게된다. 함수호출문과피호출함수에서사용하는입출력인수명은서로달라도상관없고, 함수파일은현재의작업폴더에저장되어있든지아니면저장된경로가설정되어있어야한다. 18

예제 2.14 벡터 x = [2 4 1 0 5 2] 를입력받아평균 (ave) 과표준편차 (dev) 를계산해주는함수를작성하고호출해보자. 19

예제 2.15 x-y 좌표계상의좌표 (x0, y0) 은원점을기준으로축을반시계방향으로 θ 만큼회전시킨새로운 x -y 좌표계에서는 (x, y) 로표시되며관계식은다음과같다. (x0, y0) 와 θ 를입력받아 (x, y) 로변환해주는함수파일을작성하고호출해보자. 20

예제 2.16 중심이 (x0, y0) 이고반경이 r 인원을그릴때극좌표와직교좌표간의관계식은아래와같다. 중점 (x0, y0) 와반경 r 을입력받아원의좌표벡터 (x, y) 를생성해주는함수를작성하고호출해보자. x = x0+rcos(θ) y = y0+rsin(θ) (0 θ 2π) 21

2.9.1.4 지역변수와전역변수 Matlab 은명령창과스크립트파일이사용하는메모리영역인작업공간과는별도로함수를위해분리된메모리영역을지정하는데, 이런분리된메모리영역을사용하는함수내의모든변수들을지역변수라한다. 함수는입력인수를통해값을전달받고, 전달받은값과함수내에서정의되는변수를써서구한결과값을출력인수를통해전달하고실행을종료한다. 함수가종료될때사용되었던모든변수들의메모리는해제되고운영체제에반납된다. 이때문에작업공간과함수, 함수와다른함수간에는서로사용중인변수를인식하지못하므로 ( 접근이불가능함 ) 호출함수와피호출함수의변수명이서로달라도상관없다. 22

2.9.1.4 지역변수와전역변수 23

2.9.1.5 영구변수 함수내에서사용되는지역변수들은제어권이호출함수로넘어갈때모두지워지므로특정변수들을지우지않고계속사용하고싶을때에는다음형식으로영구변수로선언해주면된다. persistent var1 var2 var3 이렇게선언하면 var1, var2, var3 변수는저장공간에서파일이지워질때까지남아있게된다. 호출함수에서영구변수내용을삭제하고싶을때에는 clear 명령어로피호출함수명을지워주면된다. 24

예제 2.17 다음은간단한 IIR 저역통과필터식이다. 입력 x(k) = cos(2πfk)+n(k) 를받아필터링해주는함수 MyFilter 를작성하고호출해보자. 여기서 f=0.5[hz] 이고, n(k) 는평균이 0 이고분산이 0.01 인정규잡음이다. y(k) = 0.1584y(k-1)+0.4208x(k)+0.4208x(k-1) 25

2.9.2 익명함수 Matlab 은수식이간단한경우에별도의파일에저장하지않고문장속에한줄로간결하게정의해서사용할수있는익명함수를가지고있다. 사용법은다음과같으며, arg1, arg2 는입력인수, f 가출력인수이고 expression 은수식을의미한다. f = @(arg1, arg2) expression 아래식과같이배열연산을써서프로그래밍해두면스칼라, 벡터둘다적용할수있다. 26

2.9.3 함수함수 어떤함수가변수뿐만아니라함수명을인수로가질때이를함수함수라부른다. Matlab 을쓰다보면이런형태의함수함수들을종종접하게된다. 이들은대부분사용자로부터함수를제공받아야만문제해결이가능하다. 2.9.3.1 함수함수의형식 함수함수의형식은앞서살펴보았던함수의형식과유사하지만, 입력인수로다른함수명을가진다는점이다르다. 여기서 fun 은사용자정의함수와익명함수또는 Matlab 에서제공하는내장함수가될수있다. 27

2.9.3.2 함수핸들 함수핸들은관련된함수를간접적으로호출하기위해 Matlab 에서사용되는데이터형식중하나이다. 함수핸들은사용자정의함수와익명함수또는내장함수를함수함수에전달해줄뿐만아니라, 변수에할당되어이후의프로그램에서사용되기도한다. handle = @functionname % 사용자정의함수또는내장함수 handle = @(arg1, arg2) expression % 익명함수 사용자정의함수와 Matlab 내장함수는함수명앞에기호 (@) 를두면함수핸들이만들어지고, 이들은다음과같이변수에할당될수있다. myfun = @fun; cosfun = @cos; 그러나익명함수의경우익명함수이름자체가함수핸들이기때문에따로 @ 를더둘필요가없다. 28

2.9.4.1 입출력인수의수 함수는입출력인수를가지며, 호출함수와피호출함수간에는이들인수를통해데이터를전달하고전달받게된다. 실제프로그래밍환경에서는호출함수의입출력인수수가피호출함수의입출력인수수보다적을수도있다. 피호출함수의입출력인수의전부, 일부, 또는아무것도갖지않고호출될수도있다. 피호출함수의입장에서호출함수로부터몇개의입력인수가전달될지또호출함수에는몇개의출력인수를전달해야할지알필요가있을때사용하는명령어가 nargin 과 nargout 이다. nargin : 호출함수로부터전달되는입력인수의수를반환한다. nargout : 호출함수에전달해줄출력인수의수를반환한다. 29

2.9.4.1 입출력인수의수 30

2.9.4.1 입출력인수의수 31

2.9.4.2 가변입출력인수 가변입력인수와가변출력인수는함수에서선언되는인수로서그길이가가변되는특징을갖는다. 이들은입출력인수의수에제한이없는함수를만들때흔히쓰이며, 명시적으로선언되는인수들다음에와야하고, 내부적으로는셀배열형태로전달된다. 그사용형식은다음과같다. 추가할명시적입출력인수가더있으면가변입출력인수앞에콤마를두고나열하면된다. 32

2.9.4.2 가변입출력인수 33

2.9.4.2 가변입출력인수 34