• 검색 결과가 없습니다.

MATLABMATLAB 개요 및 응용개요 및 응용

N/A
N/A
Protected

Academic year: 2021

Share "MATLABMATLAB 개요 및 응용개요 및 응용"

Copied!
48
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

MATLAB

MATLAB

MATLAB 개요 및 응용 개요 및 응용

6 6 장 사용자정의 함수와 함수 파일 장 사용자정의 함수와 함수 파일

0

10

20

30 0

10 20

30 0

10 20 30

(2)

MATLAB HCH

강의 내용 강의 내용

함수 파일의 작성 함수 파일의 작성

함수 파일의 구조 함수 파일의 구조

지역변수와 전역변수 지역변수와 전역변수

함수파일의 저장 함수파일의 저장

사용자정의 함수의 이용 사용자정의 함수의 이용

스크립트 파일과 함수 파일의 비교 스크립트 파일과 함수 파일의 비교

익명 함수와 인라인 함수 익명 함수와 인라인 함수

함수의 함수 함수의 함수

부함수 부함수

중첩함수 중첩함수

응용예제 응용예제

(3)

MATLAB HCH

서 론 서 론

수학에서 간단한 함수 수학에서 간단한 함수

f(f

(x

x)

) 는 주어진 는 주어진

xx

의 각 값에 유일한 값을 연관시킨다 의 각 값에 유일한 값을 연관시킨다 . . 함수는

함수는

yy

= =

ff

( (

xx

) ) 로 표현할 수 있으며 로 표현할 수 있으며 , , 일반적으로 일반적으로

ff

( (

xx

) )

xx

에 의한 수학적 에 의한 수학적 표현식이다

표현식이다 . . 식의 식의

xx

에 값 에 값 ( ( 입력 입력 ) ) 을 대입하면 을 대입하면

yy

의 값 의 값 ( ( 출력 출력 ) ) 이 얻어진다 이 얻어진다 . .

MATLAB MATLAB 에는 많은 함수들이 내장함수 에는 많은 함수들이

내장함수 (built-in function)

(built-in function) 로 프로그램 되어 로 프로그램 되어 있으며 있으며 , , 함수 이름과 입력인자 함수 이름과 입력인자 (argument) (argument) 만 입력하면 결과를 얻을 수 있 만 입력하면 결과를 얻을 수 있

다다

. .

예예

) sin(x), cos(x), sqrt(x), exp(x), log(x), … ) sin(x), cos(x), sqrt(x), exp(x), log(x), …

내장함수가 아닌 함수의 값을 계산할 필요가 있을 때 내장함수가 아닌 함수의 값을 계산할 필요가 있을 때

함수 식이 간단하고 한번만 계산하면 되는 경우 함수 식이 간단하고 한번만 계산하면 되는 경우 : : 프로그램의 일부로 작성프로그램의 일부로 작성

여러 입력인자들에 대해 여러 번 함수 값을 계산할 때 여러 입력인자들에 대해 여러 번 함수 값을 계산할 때 : 사용자 정의: 사용자 정의 (user-(user- defined)

defined) 함수함수를 만들어 내장함수처럼 반복적으로 사용를 만들어 내장함수처럼 반복적으로 사용

Function

Function 은 프로그램 속의 부프로그램 은 프로그램 속의 부프로그램 (subprogram) (subprogram) 으로서 입력데이터를 으로서 입력데이터를 이용하여 계산을 수행한 후 계산결과를

이용하여 계산을 수행한 후 계산결과를 function function 밖으로 출력해준다 밖으로 출력해준다 . .

(4)

MATLAB HCH

함수 파일 함수 파일 (Function file) (Function file)

반복적인 일련의 계산과정이 필요할 때 반복적인 일련의 계산과정이 필요할 때 , , 또는 계산과정에서 만들어지거 또는 계산과정에서 만들어지거 나 잠시 필요한 중간 변수들에 관심이 없거나 감추고 싶을 때

나 잠시 필요한 중간 변수들에 관심이 없거나 감추고 싶을 때 , , 즉 주어진 즉 주어진 입력에 대해 결과인 출력만을 얻고 싶을 때 함수 파일을 작성한다

입력에 대해 결과인 출력만을 얻고 싶을 때 함수 파일을 작성한다 . . Function

Input

File

Input datadata

Input Input argument

argument Output Output

datadata Output

Output argument argument

사용자 정의함수 예 사용자 정의함수 예 : : 직각삼각형의 두 변으로부터 빗변을 구하는 함수 직각삼각형의 두 변으로부터 빗변을 구하는 함수 Function

√(x

2

+y

2

)

xx=3 =3

yy=4=4 z=5z=5

수학함수로 사용하는 용도 외에도 함수파일은 큰 프로그램의 부프로그램 수학함수로 사용하는 용도 외에도 함수파일은 큰 프로그램의 부프로그램 으로 사용될 수 있다

으로 사용될 수 있다 . . 독립적으로 테스트가 가능한 부프로그램들로 큰 프 독립적으로 테스트가 가능한 부프로그램들로 큰 프 로그램을 작성하면

로그램을 작성하면 , , 유지관리에 유리하다 유지관리에 유리하다 . .

C – functionC – function,, FORTRAN – subroutine,FORTRAN – subroutine, PASCAL - procedure PASCAL - procedure

(5)

MATLAB HCH

함수 파일의 생성 함수 파일의 생성

명령창에서

명령창에서

edit

edit

명령을 입력하거나

명령을 입력 하거나

File →New→M-file

File

→New→M-file 메뉴메뉴를 순서대로를 순서대로 선택하면선택하면

, Editor/Debugger ,

Editor/Debugger

이 열린다 이 열린다 . . 스크립트 파일이 특별한 형식 없 스크립트 파일이 특별한 형식 없 이 명령창에서 사용하는 명령어들을 모아 놓은 데 비해

이 명령창에서 사용하는 명령어들을 모아 놓은 데 비해 , , 함수 파일은 정해진 함수 파일은 정해진 형식을 가지고 있으며 스크립트 파일과 다른 차이점을 가지고 있다

형식을 가지고 있으며 스크립트 파일과 다른 차이점을 가지고 있다 . .

함수 파일의 구조

함수 파일의 구조

Function definition line Function definition line H1 line

H1 line (lookfor(lookfor 에서 사용에서 사용))

On-line help

On-line help 에서에서 사용되는 주석문 사용되는 주석문 Function body Function body ((함수 프로그램함수 프로그램))

Function

Function 파일임을 알리며파일임을 알리며, , 반드시 소문자로 한다 반드시 소문자로 한다 . .

출력인자들 출력인자들

함수이름함수이름

입력인자들 입력인자들

(6)

MATLAB HCH

함수 파일의 구조 함수 파일의 구조 함수 정의 함수 정의

Function definition line

Function definition line

함수 파일의

함수 파일의 첫번째 라인첫번째 라인에는 반드시 함수 정의 라인에는 반드시 함수 정의 라인이 있어야 한다이 있어야 한다 . . 그렇지 그렇지 않으면않으면 , , 스크립트 파일로 인식된다스크립트 파일로 인식된다 ..

Function definition line

Function definition line

의 역할

의 역할

파일을 함수 파일로 정의파일을 함수 파일로 정의

함수의 이름을 정의함수의 이름을 정의

입력인자와 출력인자의 개수와 순서를 정의입력인자와 출력인자의 개수와 순서를 정의

함수 정의 라인의 형식

함수 정의 라인의 형식

:

:

function

function [ [ 출력변수출력변수1, 1, 출력변수출력변수2, ….] = function_name2, ….] = function_name(( 입력변수입력변수1, 1, 입력변수입력변수2, …2, …)) 함수 파일임을 알림

함수 파일임을 알림 . . 반드시 소문자로 입력반드시 소문자로 입력..

꺾은 괄호 안에 출력인자들을 나열함

꺾은 괄호 안에 출력인자들을 나열함 . .

출력인자가 한 개인 경우에는 꺾은 괄 출력인자가 한 개인 경우에는 꺾은 괄 호 없이 변수 하나만 쓴다

호 없이 변수 하나만 쓴다 ..

프로그램에서 사용할 함수 이름

프로그램에서 사용할 함수 이름 . . 함수 함수 이름에 대한 규칙은 변수와 동일함

이름에 대한 규칙은 변수와 동일함 함수 프로그램 안에서 사용할 함수 프로그램 안에서 사용할 입력인자들로 괄호 안에 입력 입력인자들로 괄호 안에 입력

(7)

MATLAB HCH

함수 파일의 구조 함수 파일의 구조 입력 인자 입력 인자

입력 및 출력 인자는 함수 안으로 필요한 데이터를 공급하고 계산된 결과를 입력 및 출력 인자는 함수 안으로 필요한 데이터를 공급하고 계산된 결과를 함수 밖으로 출력해주는 역할을 한다

함수 밖으로 출력해주는 역할을 한다 . .

입력인자에 대한 규칙

입력인자에 대한 규칙

함수 이름 다음에 괄호함수 이름 다음에 괄호 속에 입력하며 속에 입력하며, , 한 개 이상인 경우 콤마로 구분함한 개 이상인 경우 콤마로 구분함

입력인자는 대개 한 개 이상이지만입력인자는 대개 한 개 이상이지만 , , 전혀 갖지 않을 수도 있음전혀 갖지 않을 수도 있음

입력인자는 스칼라 뿐만 아니라 벡터나 배열이 될 수도 있으므로입력인자는 스칼라 뿐만 아니라 벡터나 배열이 될 수도 있으므로 , 함수 파일 , 함수 파일 내에서 수학식은 입력인자의 차원에 맞춰서 표현

내에서 수학식은 입력인자의 차원에 맞춰서 표현되어야 한다되어야 한다 ..

radial

radial 함수에서 입력인자 함수에서 입력인자 x, x, yy 는 스칼라일 수도 있지만는 스칼라일 수도 있지만 , , 벡터일수도 있으므로 크기 벡터일수도 있으므로 크기 rr 과 각 과 각 thetatheta 를 계산할 때 원소를 계산할 때 원소 별 연산으로 나타내었음

별 연산으로 나타내었음 ..

>> x=[3 5 6 9];y=[4 12 8 12];

>> x=[3 5 6 9];y=[4 12 8 12];

>> [d, ang]=radial(x, y);

>> [d, ang]=radial(x, y);

(8)

MATLAB HCH

함수 파일의 구조 함수 파일의 구조 출력 인자 출력 인자

출력인자에 대한 규칙 출력인자에 대한 규칙

함수 정의 라인에서 부호 함수 정의 라인에서 부호 ‘‘=’=’ 의 왼쪽에 쓰며의 왼쪽에 쓰며 , , 인자가 두 개 이상인 경우 인자가 두 개 이상인 경우 꺾은 괄호 속에 콤마로 구분하여 나열

꺾은 괄호 속에 콤마로 구분하여 나열한다한다. .

출력인자가 단 한 개인 경우에는 꺾은 괄호가 필요 없다출력인자가 단 한 개인 경우에는 꺾은 괄호가 필요 없다 . .

출력인자가 전혀 없는 경우에는 출력인자가 전혀 없는 경우에는 ‘‘=’=’ 부호와 출력인자를 생략한다부호와 출력인자를 생략한다 . .

출력인자가 없는 함수의 예 출력인자가 없는 함수의 예 : : 그래프만을 출력하거나 계산결과를 파일에 그래프만을 출력하거나 계산결과를 파일에 저장하는 경우

저장하는 경우

출력인자는 함수 파일 속에서 계산된 결과를 본 프로그램에 전달하는 역할 출력인자는 함수 파일 속에서 계산된 결과를 본 프로그램에 전달하는 역할 을 하므로

을 하므로 , , 함수 파일이 작동하기 위해서는 함수 프로그램 안에서 반드시 함수 파일이 작동하기 위해서는 함수 프로그램 안에서 반드시 출력인자에 값이 주어져야 한다

출력인자에 값이 주어져야 한다 . .

문자열 문자열 (string) (string) 을 함수 파일에 입력인자로 전달할 수도 있다 을 함수 파일에 입력인자로 전달할 수도 있다 . . 함수 파 함수 파 일 안에서 다른 함수를 이용하고자 할 때 이용할 함수의 이름을 전달하기 일 안에서 다른 함수를 이용하고자 할 때 이용할 함수의 이름을 전달하기 위해 문자열을 입력인자에 전달한다

위해 문자열을 입력인자에 전달한다 . .

(9)

MATLAB HCH

함수 파일의 구조 함수 파일의 구조 - - 입력 및 출력 인자 입력 및 출력 인자

일반적으로 함수 파일은 입력인자와 출력인자를 통해 필요한 데이터를 받고 일반적으로 함수 파일은 입력인자와 출력인자를 통해 필요한 데이터를 받고 계산결과를 출력하며

계산결과를 출력하며 , 함수 파일 안에서 사용한 변수들은 함수 파일 안에서 ,

함수 파일 안에서 사용한 변수들은 함수 파일 안에서 만 유효

만 유효 하므로 함수를 부른 본 프로그램에서는 사용할 수 없다 하므로 함수를 부른 본 프로그램에서는 사용할 수 없다 . .

스크립트 파일에서 사용했던 입력과 출력 명령어들의 특성은 그대로 유지된 스크립트 파일에서 사용했던 입력과 출력 명령어들의 특성은 그대로 유지된

다다

. .

즉즉

, , 스크립트 파일처럼 함수 파일에서 명령어 뒤에 세미콜른을 붙이지 스크립트 파일처럼 함수 파일에서 명령어 뒤에 세미콜른을 붙이지

않으면 각 명령어의 계산결과가 화면에 표시되며

않으면 각 명령어의 계산결과가 화면에 표시되며 , input , input 명령을 통해 사용 명령을 통해 사용 자로부터 데이터를 입력 받을 수 있고

자로부터 데이터를 입력 받을 수 있고 , disp ,

disp

나 fprintf

fprintf,

, plot

plot

등의 명령어를 등의 명령어를 통해 데이터를 화면이나 파일에 출력시킬 수 있다

통해 데이터를 화면이나 파일에 출력시킬 수 있다 . .

다양한 함수파일의 정의 예 다양한 함수파일의 정의 예

function

function [r, theta] [r, theta] = radial(= radial(x, yx, y)) : : 두 개의 입력인자와 두 개의 출력인자두 개의 입력인자와 두 개의 출력인자 function

function [r] [r] = radial(= radial(x, yx, y)) : : 두 개의 입력인자와 한 개의 출력인자두 개의 입력인자와 한 개의 출력인자 function

function rr = radial(= radial(x, yx, y)) : : 두 개의 입력인자와 한 개의 출력인자두 개의 입력인자와 한 개의 출력인자 function

function [S, V][S, V] = Sphere(r= Sphere(r) ) : : 한 개의 입력인자와 두 개의 출력인자한 개의 입력인자와 두 개의 출력인자 function

function path(path(v0, thetav0, theta)) : : 두 개의 입력인자두 개의 입력인자 , , 출력인자 없음출력인자 없음

(10)

MATLAB HCH

함수파일 구조 함수파일 구조 - - H1 line, H1 line, Help text lines Help text lines

% % 로 시작되는 함수 정의라인 아래의 주석부분으로 함수에 대한 정보를 로 시작되는 함수 정의라인 아래의 주석부분으로 함수에 대한 정보를 제공하는 것이 목적이므로 필수는 아니다

제공하는 것이 목적이므로 필수는 아니다 . .

H1

H1

라인

라인

첫 번째 줄의 주석첫 번째 줄의 주석으로서 대개 함수의 이름과 간단한 정의으로서 대개 함수의 이름과 간단한 정의를 포함한다를 포함한다..

명령창에 입력한 명령창에 입력한 lookfor lookfor 명령은 키워드를 함수의 명령은 키워드를 함수의 H1 H1 라인에서 찾아 라인에서 찾아 H1 H1 라인의 내용을 화면에 표시한다

라인의 내용을 화면에 표시한다 . .

(11)

MATLAB HCH

함수 파일의 변수 함수 파일의 변수

계산수행 부분에서는 계산수행 부분에서는 MATLAB MATLAB 프로그래밍의 모든 특징을 사용할 수 있으 프로그래밍의 모든 특징을 사용할 수 있으 며 며 , , 출력인자가 있는 경우 반드시 계산 결과를 출력인자에 돌려줘야 한다 출력인자가 있는 경우 반드시 계산 결과를 출력인자에 돌려줘야 한다 . .

지역변수 지역변수 (local variable) (local variable) 와 전역변수 와 전역변수 (global variable) (global variable)

함수 파일의 모든 변수는

함수 파일의 모든 변수는 workspaceworkspace 가 아닌 별도의 메모리 공간을 사용하므로 가 아닌 별도의 메모리 공간을 사용하므로 함수 파일 안에서만 인식되는

함수 파일 안에서만 인식되는 ““ 지역지역”” 변수이다변수이다 . . 따라서 명령 창에서는 함수 파따라서 명령 창에서는 함수 파 일의 입력변수나 출력변수의 이름을 인식하지 못한다

일의 입력변수나 출력변수의 이름을 인식하지 못한다 ..

(12)

MATLAB HCH

함수 파일에서의 전역변수 함수 파일에서의 전역변수

함수 파일 안의 특정 변수를 다른 함수 파일에서 사용하거나 명령창에서 함수 파일 안의 특정 변수를 다른 함수 파일에서 사용하거나 명령창에서 사용하기 위해

사용하기 위해 global

global

명령을 이용하여 전역변수 명령을 이용하여

전역변수로 선언할 수 있다

로 선언할 수 있다 . .

변수의 전역변수 선언 변수의 전역변수 선언

global global 명령어 뒤에 전역변수로 선언할 변수들을 공백으로 구분하여 나열명령어 뒤에 전역변수로 선언할 변수들을 공백으로 구분하여 나열 한다한다. 변수들 구분을 절대 콤마. 변수들 구분을 절대 콤마 (,)(,) 로 하면 안 되고 공백으로 해야 한다로 하면 안 되고 공백으로 해야 한다 .. 예예) global) global var1 var2 var3var1 var2 var3 … …

특정 변수들을 전역변수로 사용하기 위해서는 사용할 함수 파일이나 스크특정 변수들을 전역변수로 사용하기 위해서는 사용할 함수 파일이나 스크 립트 파일

립트 파일 , , 명령창 등에서 동일하게 명령창 등에서 동일하게 global global 명령어로 선언해 주어야 한명령어로 선언해 주어야 한 다다. 선언된 곳에서만 인식이 된다. 선언된 곳에서만 인식이 된다 ..

global global 명령으로 선언한 후에 유효명령으로 선언한 후에 유효하므로 가능하면 파일의 제일 앞 부분에하므로 가능하면 파일의 제일 앞 부분에 서 선언하는 것이 좋다

서 선언하는 것이 좋다 ..

전역변수로 선언된 후전역변수로 선언된 후, , 어디서든 변수의 값은 변경이 가능하다어디서든 변수의 값은 변경이 가능하다..

전역변수는 일반변수와 구별하기 위해 가급적이면 식별이 가능하도록 길전역변수는 일반변수와 구별하기 위해 가급적이면 식별이 가능하도록 길 게 하거나

게 하거나 전부 대문자로 이름을 정하는 것이 좋다전부 대문자로 이름을 정하는 것이 좋다 ..

명령 창에서 전역변수로 선언하게 되면 명령 창에서 전역변수로 선언하게 되면 workspaceworkspace 의 변수로 인식된다의 변수로 인식된다 ..

(13)

MATLAB HCH

global global 명령에 의한 전역변수 선언 명령에 의한 전역변수 선언

(14)

MATLAB HCH

함수 파일의 저장 함수 파일의 저장

함수 파일은 사용하기 전에 반드시 파일로 저장이 되어야 한다 함수 파일은 사용하기 전에 반드시 파일로 저장이 되어야 한다 . 파일 이름 .

파일 이름

은 함수 정의 라인의 함수 이름과 같도록

은 함수 정의 라인의 함수 이름과 같도록 하는 것을 강력하게 권장함

하는 것을 강력하게 권장함 . .

함수 파일을 함수 이름과 같게 저장하지 않았다면 함수 파일을 함수 이름과 같게 저장하지 않았다면 , , 이 함수를 호출할 때

함수를 호출할 때

함수 이름 대신에

함수 이름 대신에 파일이름을 사용

파일이름을 사용

해야 한다 해야 한다 . .

함수파일에서 함수 정의 라인이 function [r, theta]=함수파일에서 함수 정의 라인이 function [r, theta]=radialradial(x, y)(x, y)일 때일 때 파일 이름은

파일 이름은 radial.mradial.m 으로 정하도록 권장한다으로 정하도록 권장한다 . . 그러면 이 함수를 radial그러면 이 함수를 radial 로 호출할 수 있다

로 호출할 수 있다 . . 그러나 만일 그러나 만일 dist.mdist.m 과 같이 다른 이름으로 저장을 한다과 같이 다른 이름으로 저장을 한다 면면, , 더 이상 더 이상 radialradial 이란 이름으로 호출하지 못하고 이란 이름으로 호출하지 못하고 distdist 로 호출해야 한다로 호출해야 한다 ..

(15)

MATLAB HCH

함수 파일의 사용 함수 파일의 사용

사용자가 정의한 함수는 내장함수와 같은 방법으로 사용한다 사용자가 정의한 함수는 내장함수와 같은 방법으로 사용한다 . . 함수는 명 함수는 명 령창이나 스크립트 파일

령창이나 스크립트 파일 , , 또는 다른 함수에서 호출할 수 있다 또는 다른 함수에서 호출할 수 있다 . .

함수 파일을 사용하기 위해서는 파일을 현재 디렉토리에 저장하거나 함수 파일을 사용하기 위해서는 파일을 현재 디렉토리에 저장하거나 search path

search path 에 파일이 저장된 디렉토리를 등록해야 한다 에 파일이 저장된 디렉토리를 등록해야 한다 . .

함수의 사용 함수의 사용

명령창이나 스크립트 파일에서 함수의 이름을 입력인자와 함께 쓴다명령창이나 스크립트 파일에서 함수의 이름을 입력인자와 함께 쓴다 ..

>> radial(3, 4)

>> radial(3, 4) % % 함수 정의 라인 함수 정의 라인 : funciton [r, theta]=radial(x, y): funciton [r, theta]=radial(x, y) ans = 5

ans = 5

다른 함수의 입력인자로 쓸 수 있다다른 함수의 입력인자로 쓸 수 있다..

>> sqrt( radial(3,4) )

>> sqrt( radial(3,4) ) ans = 2.2361

ans = 2.2361

수학식의 일부로 함수를 쓸 수 있다수학식의 일부로 함수를 쓸 수 있다..

>> y=0.2*exp( radial(3,4) )

>> y=0.2*exp( radial(3,4) ) y = 14.8413

y = 14.8413

함수의 출력 값을 변수에 할당한다함수의 출력 값을 변수에 할당한다. .

(16)

MATLAB HCH

function [r, theta] = radial(x, y) function [r, theta] = radial(x, y)

% radial(x, y)

% radial(x, y) 는 벡터 는 벡터 (x,y)(x,y)의 크기와 각을 계산의 크기와 각을 계산

% % 출력 출력 rr 은 벡터의 크기은 벡터의 크기

% % 출력 출력 thetatheta 는 벡터의 각 는 벡터의 각 θ(rad)θ(rad)를 돌려준다를 돌려준다..

… …

r = sqrt(x.^2+y.^2);

r = sqrt(x.^2+y.^2);

theta = atan(y./x);

theta = atan(y./x);

입력인자 입력인자 : : 수 수 , , 계산 가능한 식 계산 가능한 식 , , 값이 미리 할당된 변수 값이 미리 할당된 변수

함수 정의 라인에서 입력인자와 출력인자의 각 위치별로 함수 호출시에 인 함수 정의 라인에서 입력인자와 출력인자의 각 위치별로 함수 호출시에 인 자들이 할당된다

자들이 할당된다 . .

>>

>> re=[3 5 6]; re=[3 5 6];

>> im=[4 12 8];

>> im=[4 12 8];

>> [d, ang] = radial(re, im)

>> [d, ang] = radial(re, im) d = 5 13 10

d = 5 13 10 ang =

ang =

0.9273 1.1760 0.9273 0.9273 1.1760 0.9273

함수 파일의 사용

함수 파일의 사용 - - 입력인자 입력인자

>> [d, ang] = radial(3, 4)

>> [d, ang] = radial(3, 4) d = 5

d = 5

ang = 0.9273 ang = 0.9273

(17)

MATLAB HCH

예제 예제 6.1 6.1 수학함수의 사용자정의 함 수학함수의 사용자정의 함

함수 에 대한 함수 파일 함수 에 대한 함수 파일

f.m

f.m 을 작성하되 을 작성하되 , , 함수에 대한 함수에 대한 입력을 입력을

xx

, , 출력을 출력을

yy

= =

f(f

(x

x)

) 로 하고 로 하고 , x ,

x

는 벡터일 수 있도록 하라 는 벡터일 수 있도록 하라 . .

이 함수를 이용하여

이 함수를 이용하여

f(6)f

(6)

x=1, 3, 5, 7x

=1, 3, 5, 7 에 대한 에 대한

f(f

(x

x)

) 를 계산하라 를 계산하라 . .

function y=f(x function y=f(x))

num=x.^4 .* sqrt(3*x+5);

num=x.^4 .* sqrt(3*x+5);

den=(x.^2 + 1).^2;

den=(x.^2 + 1).^2;

y=num./den;

y=num./den;

>> f(6)

>> f(6) ans = ans = 4.54014.5401

>> y = f(6)

>> y = f(6) y =y =

4.5401 4.5401

>> f(1:2:11)

>> f(1:2:11) ans =ans =

0.7071 3.0307 4.1347 4.8971 5.5197 6.06380.7071 3.0307 4.1347 4.8971 5.5197 6.0638

>> y = f([1 3 5 7])

>> y = f([1 3 5 7]) y =y =

0.7071 3.0307 4.1347 4.89710.7071 3.0307 4.1347 4.8971

2 2

4

) 1 (

5 ) 3

(

x

x x x

f

파일명 파일명 : f.m: f.m

(18)

MATLAB HCH

예제 예제 6.2 6.2 온도 단위의 변환 온도 단위의 변환

화씨온도 화씨온도 FF 를 섭씨온도 를 섭씨온도 CC 로 변환하는 함수 로 변환하는 함수 FtoC.mFtoC.m을 작성하고을 작성하고 , , 이 함수를 이이 함수를 이 용 하 여 다 음 문 제 를 풀 어 라

용 하 여 다 음 문 제 를 풀 어 라 . . 온 도 변 화 온 도 변 화 ΔTΔT 에 의한에 의한 물 체 길 이 의 변 화 는 물 체 길 이 의 변 화 는 ΔΔLL==ααLLΔΔTT 로 주어진다로 주어진다. . 만일 온도가만일 온도가 40°F40°F 에서에서 92°F92°F까지 변한다면까지 변한다면 , 4.5 , 4.5 ⅹⅹ2.25 2.25 m m 크기의 사각형 알루미늄판크기의 사각형 알루미늄판 (α(α =23x10 =23x10-6-6)) 의 면적 변화는 얼마가 되겠는가의 면적 변화는 얼마가 되겠는가??

function

function C=FtoC(F)C=FtoC(F)

% % FtoCFtoC는 화씨온도 는 화씨온도 FF를 섭씨온도 를 섭씨온도 CC 로 바꾼로 바꾼 ..

C=5*(F-32)./9;

C=5*(F-32)./9;

파일명 파일명 : FtoC.m: FtoC.m

Script file : Ch6Ex2 Script file : Ch6Ex2

a1=4.5; b1=2.25; T1=40; T2=92; alpha=23e-6;

a1=4.5; b1=2.25; T1=40; T2=92; alpha=23e-6;

deltaT=FtoC(T2)

deltaT=FtoC(T2)-FtoC(T1);-FtoC(T1);

a2=a1+alpha*a1*deltaT;

a2=a1+alpha*a1*deltaT;

b2=b1+alpha*b1*deltaT;

b2=b1+alpha*b1*deltaT;

AreaChange=a2*b2

AreaChange=a2*b2-a1*b1;-a1*b1;

fprintf(

fprintf(‘ 면 적 변 화 는 면 적 변 화 는 %6.5f m^2%6.5f m^2 이 다이 다 .'.', ,

(19)

MATLAB HCH

스크립트 파일과 함수 파일의 비교 스크립트 파일과 함수 파일의 비교

스크립트 파일과 함수 파일의 비교 스크립트 파일과 함수 파일의 비교

항목항목 스크립트스크립트(Script) (Script) 파일파일 함수함수(Function) (Function) 파일파일 입력 및 출력 인자

입력 및 출력 인자 (input & output (input & output

argument) argument)

입력인자는 불필요하며

입력인자는 불필요하며 , , 출력출력 인자를 돌려주지 않음

인자를 돌려주지 않음

입력인자를 받아들일 수 있으며 입력인자를 받아들일 수 있으며 , , 출력인자를 돌려준다

출력인자를 돌려준다 . .

변수의 범위

변수의 범위 전역변수전역변수 (Global variable)(Global variable) 로 로 workspace

workspace 에 저장됨에 저장됨

지역변수지역변수 (Local variable)(Local variable)로로, , 함함 수 내에서만 사용되고 소멸됨 수 내에서만 사용되고 소멸됨 파일 이름 및

파일 이름 및 형식형식

일반적인 파일 이름의 제약을 일반적인 파일 이름의 제약을 따르며따르며, , 특별한 형식 없음특별한 형식 없음

함수 정의를 위한 형식을 따라야 함수 정의를 위한 형식을 따라야 하며하며 , 파일 이름은 함수이름과 , 파일 이름은 함수이름과 동일해야 한다동일해야 한다 ..

기타기타 여러 번 수행해야 할 일련의 명여러 번 수행해야 할 일련의 명 령어들을 모아 둔 파일

령어들을 모아 둔 파일

자신의 프로그램에서 특정 목적 자신의 프로그램에서 특정 목적 을 위한 부프로그램이나 계산프 을 위한 부프로그램이나 계산프 로그램으로 사용

로그램으로 사용

(20)

MATLAB HCH

익명함수 익명함수 (Anonymous function) (Anonymous function)

(1/3) (1/3)

익명함수는 별도의 함수 파일 익명함수는 별도의 함수 파일 (M-files) (M-files) 을 만들지 않고 정의하는 을 만들지 않고 정의하는 , 한 줄로 된 ,

한 줄로 된

간단한 사용자정의 함수

간단한 사용자정의 함수

이다 이다 . . 익명 함수는 명령어 창이나 스크립트 파일 익명 함수는 명령어 창이나 스크립트 파일 , , 일반 사용자정의 함수 안에서 정의할 수 있다

일반 사용자정의 함수 안에서 정의할 수 있다 . .

익명함수는 MATLAB 7 익명함수는

MATLAB 7 에서 도입

에서 도입 되었으며 되었으며 , MATLAB , MATLAB 이전 버전에서 같 이전 버전에서 같 은 목적으로 사용되던

은 목적으로 사용되던 inline inline 함수를 대체한다 함수를 대체한다 . . 둘 다 사용할 수는 있으나 둘 다 사용할 수는 있으나 , , 여러 장점 때문에 익명함수의 사용을 권장한다

여러 장점 때문에 익명함수의 사용을 권장한다 . .

익명함수의 정의

익명함수의 정의

name = @(arglist) expr

name = @(arglist) expr

예예) cube=@(x) x^3 ) cube=@(x) x^3 → cube(→ cube(xx) = x) = x33, cube(2)=8, cube(2)=8

익명함수를 생성하고 익명함수의 핸들을 익명함수를 생성하고 익명함수의 핸들을 = = 변수 변수 namename 에 할당에 할당한다한다. . 함수 핸함수 핸 들은 함수 사용을 위한 수단이며

들은 함수 사용을 위한 수단이며 , , 함수를 다른 함수에 전달하기 위한 방법을 함수를 다른 함수에 전달하기 위한 방법을 제공하기도 한다

제공하기도 한다 ..

exprexpr 은 은 MATLABMATLAB 으로 표현된 수학식으로 내장함수나 사용자정의 함수도 으로 표현된 수학식으로 내장함수나 사용자정의 함수도 포함할 수 있음

포함할 수 있음 ..

(21)

MATLAB HCH

익명함수의 정의

익명함수의 정의

(

(

계속

계속

)

)

name = @(arglist) expr

name = @(arglist) expr

독립변수는 arglist독립변수는 arglist 에 나열되며에 나열되며 , , 변수가 한 개 이상이면 콤마로 분리한다변수가 한 개 이상이면 콤마로 분리한다 . . 예예) circle = @ (x, y) (16*x^2+9*y^2) → circle() circle = @ (x, y) (16*x^2+9*y^2) → circle(x, x, yy)=16)=16xx22+9+9yy22

수학식은 입력인자의 차원에 따라 원소별 연산 또는 선형대수 계산으로 작성수학식은 입력인자의 차원에 따라 원소별 연산 또는 선형대수 계산으로 작성 되어야 한다

되어야 한다 ..

수학식은 익명함수가 정의되기 전에 미리 정의된 변수를 포함할 수 있다수학식은 익명함수가 정의되기 전에 미리 정의된 변수를 포함할 수 있다 .. 예예) >> a=4; b=12;c=9;) >> a=4; b=12;c=9;

>> f = @ (x) (a*x^2+b*x+c)

>> f = @ (x) (a*x^2+b*x+c)

>> f(1)>> f(1)

ans =ans = 2525

미리 정의된 변수를 포함하는 익명함수가 정의될 때미리 정의된 변수를 포함하는 익명함수가 정의될 때 , MATLAB, MATLAB 은 정의 당은 정의 당 시의 변수의 값을 취하므로

시의 변수의 값을 취하므로 , , 나중에 변수 값이 다른 값으로 바뀌어도 함수는 나중에 변수 값이 다른 값으로 바뀌어도 함수는 변하지 않는다

변하지 않는다 . . 이 경우 익명함수를 다시 정의해야 한다이 경우 익명함수를 다시 정의해야 한다 ..

익명함수 익명함수

(2/3)(2/3)

(22)

MATLAB HCH

>>

>> FA = @(x) exp(x^2)/sqrt(x^2+5)FA = @(x) exp(x^2)/sqrt(x^2+5) FA =

FA =

@(x)exp(x^2)/sqrt(x^2+5)

@(x)exp(x^2)/sqrt(x^2+5)

>>

>> FA(2)FA(2) ans = ans =

18.199418.1994

>> z = FA(3)

>> z = FA(3) z =z =

2.1656e+0.03 2.1656e+0.03

>>> FA = @(x) exp(x.^2)./sqrt(x.^2+5)> FA = @(x) exp(x.^2)./sqrt(x.^2+5) FA = @(x)exp(x^2)/sqrt(x^2+5)

FA = @(x)exp(x^2)/sqrt(x^2+5)

>> FA([1 0.5 2])

>> FA([1 0.5 2])

ans =1.1097 0.5604 18.1994 ans =1.1097 0.5604 18.1994

2

( ) 2

5 ex

f xx

의 익명함수 정의 의 익명함수 정의

함수 함수

xx가 배열로 주어질 경우를 고려한 가 배열로 주어질 경우를 고려한 정의정의

익명함수 익명함수

(3/3)(3/3)

(23)

MATLAB HCH

다변수 함수의 익명함수 정의 다변수 함수의 익명함수 정의

>>> > HA = @(x,y) 2*x^2-HA = @(x,y) 2*x^2-4*x*y+y^24*x*y+y^2 HA =

HA =

@(x,y) 2*x^2@(x,y) 2*x^2--4*x*y+y^24*x*y+y^2

>>

>> HA(2,3)HA(2,3) ans =

ans = --77

2 2

( , ) 2 4

f x yxxy y

의 한 줄로 된 함수 정의 의 한 줄로 된 함수 정의

2 2 변 수 함 변 수 함

2 2

1.5 cos( /2)sin

( , ) 1.8

x y y x

f x y

2

2

변 수 함

변 수 함

>>> f = @(x,y) 1.8.^(> f = @(x,y) 1.8.^(--1.5*1.5*sqrt(x.^2+y.^2)).*cos(0.5*y).*sin(x)sqrt(x.^2+y.^2)).*cos(0.5*y).*sin(x) f = f =

@(x,y)1.8.^(-@(x,y)1.8.^(-1.5*sqrt(x.^2+y.^2)).*cos(0.5*y).*sin(x)1.5*sqrt(x.^2+y.^2)).*cos(0.5*y).*sin(x)

>> x=[

>> x=[-4:0.2:4]; y=[-4:0.2:4]; y=[--4:0.2:4]; [X,Y]= meshgrid(x,y); 4:0.2:4]; [X,Y]= meshgrid(x,y);

>> Z=f(X,Y); mesh(X,Y,Z)

>> Z=f(X,Y); mesh(X,Y,Z)

-4 -2

0 2

4

-4 -2 0 2 4 -0.4 -0.2 0 0.2 0.4

(24)

MATLAB HCH

예제 예제 6.3 6.3 극좌표로 주어진 두 점 극좌표로 주어진 두 점

두 점의 위치가 극좌표로 주어질 때두 점의 위치가 극좌표로 주어질 때 , , 두 점 사이의 거두 점 사이의 거 리를 계산하는 익명함수를 작성하라

리를 계산하는 익명함수를 작성하라 . . 이 익명함수를 이 익명함수를 사용하여 점

사용하여 점 A(2, π/6)A(2, π/6) 와 점 와 점 B(5, 3π/4) B(5, 3π/4) 사이의 거리사이의 거리 를 구하라

를 구하라 ..

 

2 2

2 cos

A B A B A B

drrr r   

두 점 사이의 거리 두 점 사이의 거리 : :

>> d= @ (rA,thetA,rB,thetB) sqrt(rA^2+rB^2-2*rA*rB*cos(thetB-thetA))>> d= @ (rA,thetA,rB,thetB) sqrt(rA^2+rB^2-2*rA*rB*cos(thetB-thetA)) d =d =

@(rA,thetA,rB,thetB)sqrt(rA^2+rB^2-2*rA*rB*cos(thetBthetA))

@(rA,thetA,rB,thetB)sqrt(rA^2+rB^2-2*rA*rB*cos(thetBthetA))

>> DistAtoB = d(2, pi/6, 5, 3*pi/4)

>> DistAtoB = d(2, pi/6, 5, 3*pi/4) DistAtoB =

DistAtoB =

5.84615.8461

(25)

MATLAB HCH

Inline Inline 함수 함수

(1/2)(1/2)

익명함수와 마찬가지로 별도의 함수 파일을 만들지 않고 프로그램 내에서 익명함수와 마찬가지로 별도의 함수 파일을 만들지 않고 프로그램 내에서 간단한 수학함수를 정의하는 간단한 사용자정의 함수이다

간단한 수학함수를 정의하는 간단한 사용자정의 함수이다 . .

fname = inline(‘ fname = inline(‘ 수학식 수학식 ) )

예예) cube= inline(‘x^3’)) cube= inline(‘x^3’)

수학식수학식은 한 개 또는 여러 개의 독립변수를 가질 수 있다은 한 개 또는 여러 개의 독립변수를 가질 수 있다. .

ii와 와 jj 를 제외한 어떠한 글자도 독립변수로 사용될 수 있으며를 제외한 어떠한 글자도 독립변수로 사용될 수 있으며 , , 독립변수가 독립변수가 두 개 이상인 경우 알파벳 순으로 정해진다

두 개 이상인 경우 알파벳 순으로 정해진다 ..

수학식수학식에는 내장함수와 사용자정의 함수가 포함될 수 있다에는 내장함수와 사용자정의 함수가 포함될 수 있다..

수학식은 수학식은 입력인자의 차원에 따라 원소별 연산 또는 선형대수 계산으로 작성입력인자의 차원에 따라 원소별 연산 또는 선형대수 계산으로 작성 되어야 한다

되어야 한다 ..

수학식수학식은 미리 정의된 변수를 포함할 수 은 미리 정의된 변수를 포함할 수 없다없다 ..

일단 함수가 정의되면일단 함수가 정의되면 , , 함수의 이름과 괄호 안에 입력인자의 값을 입력하여 함수의 이름과 괄호 안에 입력인자의 값을 입력하여 함수를 사용한다

함수를 사용한다 ..

inline inline 함수는 다른 함수의 입력인자로 사용될 수도 있다함수는 다른 함수의 입력인자로 사용될 수도 있다 ..

(26)

MATLAB HCH

예예 ) x) x=1, 4, 5=1, 4, 5 에서에서 ff(x(x) = 2) = 2xx22-10-10 의 값을 구하라의 값을 구하라 ..

>>

>> f=inline('2*x.^2 -f=inline('2*x.^2 - 10') 10') f = Inline function:

f = Inline function:

f(x) = 2*x.^2 -f(x) = 2*x.^2 - 10 10

>>

>> f(2) f(2) ans = ans = --22

>> x=4;

>> x=4;

>>

>> f(x) f(x) ans = 22 ans = 22

>>

>> f([1 4 5]) f([1 4 5]) ans =

ans = -8 22 40-8 22 40

>> root=

>> root=fzero(f, 0) fzero(f, 0) root =

root = - -2.23612.2361

>> f(root)

>> f(root) ans = 1.7764e

ans = 1.7764e--015015

2

( ) 2

5 ex

f xx

inline inline 함수 정 함수 정

>> f = inline('exp(x.^2)./sqrt(x.^2+5)') f =f =

Inline function:

Inline function:

f(x) = exp(x.^2)./sqrt(x.^2+5) f(x) = exp(x.^2)./sqrt(x.^2+5)

>> f(2) ans = ans = 18.1994 18.1994

>> f([1 0.5 2]) ans =

ans =

1.1097 0.5604 18.1994 1.1097 0.5604 18.1994

Inline

Inline 함수 함수

(2/2)(2/2)

(27)

MATLAB HCH

다변수함수의 다변수함수의 Inline Inline 함수 정의 함수 정의

name = inline name =

inline('

(' 수학식 수학식 , 'arg1', 'arg2', 'arg3') , 'arg1', 'arg2', 'arg3')

함수를 호출할 때 사용하는 입력인자들의 순서는 정의할 때 나열한 순서로 정 함수를 호출할 때 사용하는 입력인자들의 순서는 정의할 때 나열한 순서로 정 의된다의된다 . . 독립변수들을 나열하지 않은 경우에는 알파벳 순서를 따른다독립변수들을 나열하지 않은 경우에는 알파벳 순서를 따른다..

예예) ) 함수 함수 f (f (x, x, yy)=2)=2xx2 2 - 4- 4xy xy + y+ y22의 정의 의 정의

>> HA=inline('2*x^2-4*x*y+y^2')

>> HA=inline('2*x^2-4*x*y+y^2') HA =HA =

Inline function:

Inline function:

HA(x,y) = 2*x^2-4*x*y+y^2 HA(x,y) = 2*x^2-4*x*y+y^2

예예) inline ) inline 명령어로 명령어로 f(f(xx)=)=xxsin(2sin(2xx22-π-π/6)/6) 을 그려라을 그려라..

익명함수를 이용하여 익명함수를 이용하여 다시 실행해보라

다시 실행해보라 ..

>>

>> f=inlinef=inline(‘x.*(‘x.*sin(2*x.^2-pi/6)');sin(2*x.^2-pi/6)');

>>

>> x=[0:0.1:4*pi]; y=f(x); x=[0:0.1:4*pi]; y=f(x);

>> plot(x, y)

>> plot(x, y)

>> f(pi)

>> f(pi)

ans = 1.1245 ans = 1.1245

(28)

MATLAB HCH

Inline Function Inline Function 의 사용 예 의 사용 예

inline inline 명령어를 이용하여 명령어를 이용하여

ff

( (

tt

)= )=

tt22

sin( sin(

ωωt t

- - π π /6), 0≤ /6), 0≤ ω ω ≤2, 0≤ ≤2, 0≤

tt

≤6 ≤6 π π 의 그래프를 의 그래프를 그려라 그려라 . .

익명함수를 이용하여 익명함수를 이용하여 다시 실행해보라

다시 실행해보라 ..

>> f=inline(' t.^2.*sin(omega.*t-pi/6)')

>> f=inline(' t.^2.*sin(omega.*t-pi/6)') f =f =

Inline function:

Inline function:

f(omega,t) = t.^2.*sin(omega.*t-pi/6) f(omega,t) = t.^2.*sin(omega.*t-pi/6)

>> omega=linspace(0,2,200);

>> omega=linspace(0,2,200);

>> t=linspace(0,6*pi,200);

>> t=linspace(0,6*pi,200);

>> x=f(omega, t);

>> x=f(omega, t);

>> plot(t, x);

>> plot(t, x);

>> grid on

>> grid on

>> axis tight

>> axis tight

(29)

MATLAB HCH

예제 예제

그림과 같이 극좌표계로 표현된 두 점 그림과 같이 극좌표계로 표현된 두 점 AA 와 와 B B 사이의 거사이의 거 리 리 dd 는 는 cos cos 제제22 법칙에 의해 다음 식으로 주어진다법칙에 의해 다음 식으로 주어진다 ..

inline

inline 함수를 이용하여 함수를 이용하여 dd 를 정의하고 두 점 를 정의하고 두 점 A(2, A(2, ππ/6)/6) 와 와 B(5, 3

B(5, 3ππ/4) /4) 사이의 거리를 구하라사이의 거리를 구하라 ..

>> d=inline( ‘sqrt(a^2 + b^2 – 2*a*b*cos(theta_B – theta_A))’ ) d =d =

Inline function:Inline function:

d(a, b, theta_A, theta_B) = sqrt(a^2 + b^2 d(a, b, theta_A, theta_B) = sqrt(a^2 + b^2 - 2*a*b*cos(theta_B - 2*a*b*cos(theta_B - theta_A))- theta_A))

>> distance = d(2,5, pi/6, 3*pi/4)

distance = distance = 5.8461 5.8461

>>

>> d=inline( ‘sqrt(a^2 + b^2 – 2*a*b*cos(theta_B – theta_A))’, ‘a’, …

‘theta_A’, ‘b’, ‘theta_B’) % 독립변수 지정 d=d=

Inline function:Inline function:

d(a, theta_A, b, theta_B) = sqrt(a^2+b^2-2*a*b*cos(theta_B - theta_A))d(a, theta_A, b, theta_B) = sqrt(a^2+b^2-2*a*b*cos(theta_B - theta_A))

B A

ab b

a

d22 2 cos  

a b

A

B

dd

(30)

MATLAB HCH

함수의 함수 함수의 함수 (Function Function) (Function Function)

다른 함수 다른 함수 Function B Function B 를 입력으로 받아들이는 어떤 함수 를 입력으로 받아들이는 어떤 함수 Function A Function A MATLAB

MATLAB 에서는 함수의 함수 에서는 함수의 함수 , , 즉 함수 함수

함수 함수 (function function)

(function function) 라고 한다 라고 한다 . .

예예) ) 함수의 영점함수의 영점( ( ff(x(x)=0)=0 인 인 x x 값값)) 을 구하는 을 구하는 MATLAB MATLAB 내장함수 fzero내장함수 fzero 는 영는 영 점점 을 구할 함수를 입력인자로 받아들이므로을 구할 함수를 입력인자로 받아들이므로 , fzero, fzero는 함수 함수는 함수 함수이다이다 ..

다른 함수를 받아들이는 함수 함수 다른 함수를 받아들이는

함수 함수

의 입력인자에는 받아들일 함수의 이름을 의 입력인자에는 받아들일 함수의 이름을 기입해야 하며

기입해야 하며 , , 이 함수의 이름은 함수 함수의 프로그램 이 함수의 이름은 함수 함수의 프로그램 ( ( 코드 코드 ) ) 에서 연산에 에서 연산에 사용된다 사용된다 . .

함수 함수를 호출할 때

함수 함수를 호출할 때

,

,

전달할 특정함수의 이름을 표기하는 방법

전달할 특정함수의 이름을 표기하는 방법

함수 핸들을 이용하는 방법과 함수 이름을 문자열 표현으로 표기하는 방법함수 핸들을 이용하는 방법과 함수 이름을 문자열 표현으로 표기하는 방법..

사용 방법은 함수 함수에서 연산을 프로그래밍하는 방식에 영향을 미친다사용 방법은 함수 함수에서 연산을 프로그래밍하는 방식에 영향을 미친다 . .

함수핸들을 이용하는 것이 더 쉽고 효율적이다함수핸들을 이용하는 것이 더 쉽고 효율적이다..

(31)

MATLAB HCH

함수 핸들을 이용한 함수 함수의 호출 함수 핸들을 이용한 함수 함수의 호출

함수 핸들은 함수와 관련된

함수 핸들은 함수와 관련된

MATLAB

MATLAB

값으로

값으로

, MATLAB

, MATLAB

데이터 형이

데이터 형이 며 며

,

,

다른 함수에 입력인자로 전달될 수 있다

다른 함수에 입력인자로 전달될 수 있다

.

.

내장 함수와 사용자정의 함수의 경우 내장 함수와 사용자정의 함수의 경우 , , 함수 이름 앞에 기호 @ 함수 이름 앞에 기호

@

를 붙이면 를 붙이면 함수 핸들이 생성되며

함수 핸들이 생성되며 , , 변수에 할당할 수 있다 변수에 할당할 수 있다 . .

예 예 ) cosHandle = @cos )

cosHandle = @cos

은 내장함수 은 내장함수 cos cos 의 함수 핸들을 변수 의 함수 핸들을 변수 cosHandle cosHandle 할당한다 할당한다 . .

익명함수는 익명함수의 이름 자체가 함수 핸들이다

익명함수는 익명함수의 이름 자체가 함수 핸들이다

.

.

) ) 임의의 함수 임의의 함수

ff

( (

xx

) ) 를 입력으로 받아 를 입력으로 받아

xx

= =

aa

xx

= =

b b

사이의 정의역에 대 사이의 정의역에 대

한 그 한 그 래프와 좌우 경계와 중앙에서의 함수 값을 출력하는 사용자정의 함 래프와 좌우 경계와 중앙에서의 함수 값을 출력하는 사용자정의 함

함수 파일을 작성하라 함수 파일을 작성하라 . .

(32)

MATLAB HCH

함수함수 파일의 작성 예제 함수함수 파일의 작성 예제

function

function xyout=funplot(Funxyout=funplot(Fun, a, b), a, b)

% funplot

% funplot 은 입력함수 은 입력함수 FunFun의 그래프를 영역 의 그래프를 영역 [a, b][a, b]에 대해 그린다에 대해 그린다..

% % 입력인자입력인자::

% Fun =

% Fun = 그래프를 그릴 함수의 함수 핸들그래프를 그릴 함수의 함수 핸들

% a =

% a = 영역의 첫 번째 점영역의 첫 번째 점

% b =

% b = 영역의 마지막 점영역의 마지막 점

% % 출력인자출력인자::

% xyout = 3×2

% xyout = 3×2 의 행렬로 세 점 의 행렬로 세 점 x=a, (a+b)/2, bx=a, (a+b)/2, b에서의 에서의 x x 값과 값과 y y 값으로 구성됨값으로 구성됨 x=linspace(a,b,100);

x=linspace(a,b,100);

y=Funy=Fun(x);(x);

plot(x, y) plot(x, y)

xlabel('x'), ylabel('y') xlabel('x'), ylabel('y')

% xyout

% xyout 행렬행렬

xyout(1,1)=a; xyout(2,1)=(a+b)/2; xyout(3,1)=b;

xyout(1,1)=a; xyout(2,1)=(a+b)/2; xyout(3,1)=b;

xyout(1,2)=y(1);

xyout(1,2)=y(1);

xyout(2,2)=

xyout(2,2)=FunFun((a+b)/2);((a+b)/2);

xyout(3,2)=y(100);

xyout(3,2)=y(100);

참조

관련 문서

다음

[r]

높은 학생을 선발하여서 장학금을 수여한다. 가장 평점이 높은 학생을 찾아서 학생의 이름과 학번, 평점을 화면에 출력하는 프로그램을 작성하여 보자.. 복소수를

③ 함수 > 프로그래밍 > 숫자형 팔레트에서 곱하기 함수를 블록 다이어그램에 두고 화씨온도 터미널과 반복 터미널을 입력으로 연결하고 이 함수의 춗력을 C_F

„ 정의: 단사 함수이고 동시에 전사 함수인 함수를. 전단사 함수(one-to-one correspondence

교재: 모던웹을 위한 JavaScript Jquery 입문,

더 이상 점수는 입력되지 않는다..  마지막에

Ø 컴퓨터 : 부품 A로부터 상속받아 부품 B, 부품 C를 만든 경우, 모두 f라는 기능