본문 바로가기
programming language/MATLAB

MATLAB function handle 추가

by __observer__ 2011. 4. 25.
반응형

오늘의 포스팅에서는 function handle 사용법의 추가 적인 내용들에 대하여 정리하겠습니다.

 

여러 함수에 대해 똑 같은 값을 적용할 때에는 function handle 을 struct classcell class 의 형태로 만들어서 이용할 수가 있습니다.



다음 수식에 대하여 struct 의 형태로 function handle 을 구성하고 그에 따른 값을 알아보죠.

 



 

다음과 같이 struct 의 형태로 표현 할 수 있고, x=-1:0.5:1 에 대한 각 수식의 값을 한번에 구할 수가 있습니다.

 

struct 에 한번에 똑 같은 값 또는 함수 등을 적용 할 때는 structfun() 함수를 이용 합니다.

 

 

위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

 

ans =

f: [1 0.2500 0 0.2500 1]

g: [-1 -0.1250 1 3.1250 7]

h: [-0.8415 -0.4794 0 0.4794 0.8415]

  


 

위 수식에 대하여 cell 의 형태로 표현하고 위 x 의 범위에 대한 값을 구해 보죠.

 

cell 에 한번에 똑 같은 값 또는 함수 등을 적용 할 때는 cellfun() 함수를 이용 합니다.

 

 

위 코드에 따른 결과는 다음과 같습니다.

 

D{1} =

1.0000 0.2500 0 0.2500 1.0000

D{2} =

-1.0000 -0.1250 1.0000 3.1250 7.0000

D{3} =

-0.8415 -0.4794 0 0.4794 0.8415

  


 

마지막으로 function handle 을 두 번 이용해서 다음 수식을 표현해 보겠습니다.

 

 

적분은 quad() 함수를 이용하겠습니다.

 

quad() 함수의 사용 방법에 대해서는 아래 포스팅을 참조 하시기 바랍니다.

   

 

@ 을 두 번 써서 위 식을 표현 할 수 있습니다.

 

f = @(a,b) (quad(@(x) (x.^2 + b*x + 4), 0, a))

 

임의의 a, b 값에 대해 다음과 같은 결과가 나오는 것을 확인 할 수 있습니다.

 

>> f(1,2)

ans =

5.3333

 

>> f(4,0)

ans =

37.3333

 


반응형

댓글