MATLAB 익명 함수

익명 함수의 기본 정의
fhandle=@(arglist)expr

그 중에서 expr은 구체적인 함수 표현식이고arglist는 지정된 함수 자변수이다.구체적인 것은 아래의 예시를 보십시오
f=@(x)x.^2;
>> fx=f(1:10)
fx =

     1     4     9    16    25    36    49    64    81   100
>> g=@(x,y)x.^2+y.^2;
>> gxy=g(1:10,2:11)

gxy =

     5    13    25    41    61    85   113   145   181   221

익명 함수 종류
1. 단변수 익명 함수 단변수 익명 함수는 가장 간단한 익명 함수로 하나의 자변수만 포함한다
f=@(x)x.^2

단변수 익명 함수입니다. 이외에 매개 변수를 포함하고 매개 변수 값이 알려진 단일 자변수의 익명 함수도 단익명 함수입니다. 예를 들어
>> f(1:5)

ans =

    30    40    50    60    70

2. 다변수 익명 함수
g=@(x,y)x.^2+y.^2;

단일 변수 익명 함수와 마찬가지로 다변수 함수도 이미 알고 있는 매개 변수 값을 가지고 있다.예컨대
a=1;b=2;
g=@(x,y)a*x+y.^b;
g(1:5,1:5)
ans =

     2     6    12    20    30

3. 단중 익명 함수는 지금까지 위에 열거한 익명 함수로 단변수 익명 함수든 다변수 익명 함수든 모두 단중 익명 함수에 속한다.단일 익명 함수의 특징은'@'기호만 안내하고'@'기호는 구체적인 함수 표현수일 뿐이다.자변수는 단일 익명 함수를 입력한 후 구체적인 수치를 얻는다.단중 익명 함수 이외에 이중, 더 나아가서는 다중 익명 함수도 있다.이 다중 익명 함수들은 매개 변수 전달에 매우 편리하다.4. 다중 익명 함수 아래에 이중 함수를 예로 들어 다중 익명 함수를 소개한다.
f=@(a,b)@(x)a*x+b;

그 중에서'a, b'는 외층 변수이고'x'는 내층 변수이다.이 표현식은 '@' 기호 뒤에 있는 괄호의 변수의 작용역이 표현식의 끝까지 이어진다는 것을 이렇게 이해할 수 있다.이렇게 하면'a, b'의 작용역은'@(x)a*x+b'이고'x'의 작용역은'a*x+b'이다.따라서 주어진'a, b'에 대해'gab=f(a, b)'는 x를 변수로 하는 단층 변수 익명 함수이다.functions 함수를 이용하여 만들어진 익명 함수 정보를 관찰할 수 있다.
f=@(a,b)@(x)a*x+b
f =

         function_handle:

    @(a,b)@(x)a*x+b
    >> f23=f(2,3)

f23 =

         function_handle:

    @(x)a*x+b
    >> f23info=functions(f23)

f23info = 

          struct:

            function: '@(x)a*x+b'
                type: 'anonymous'
                file: 'D:\     \    \anonymous3.m'
           workspace: {[1×1 struct]}
    within_file_path: 'anonymous3'
>> f23info.workspace{1}

ans = 

          struct:

    a: 2
    b: 3

이중 이상의 익명 함수는 이중 익명 함수 유추를 참고할 수 있다. 예를 들어 다음과 같다.
>> f=@(a)@(b,c)@(x)x^a+b*c

f =

         function_handle:

    @(a)@(b,c)@(x)x^a+b*c

이중 이상의 익명 함수의 각 변수의 작용역은 이중 익명 함수를 참고할 수 있다.

좋은 웹페이지 즐겨찾기