오늘 포스팅에서는 symbolic math 를 통해 계산한 수식에 대해 함수를 만드는 방법에 대해 설명 드리겠습니다.
일단 다음과 같이 수식을 정의 해 보죠.
syms a b x
f=a*x^2+x + 8
f =
a*x^2 + x + 8
위 수식에서 a 값을 2*b 값으로 치환을 해보겠습니다. 치환 할 때는 subs() 함수를 이용합니다.
f1=subs(f, a, 2*b)
f1 =
2*b*x^2 + x + 8
그럼 이제 위 f1 식을 함수로 정의해 보겠습니다. symbolic 식을 함수로 표현 할 때는 matlabFunction() 이라는 함수를 사용합니다.
hf1 = matlabFunction(f1)
hf1 =
@(b,x)x+b.*x.^2.*2.0+8.0
위와 같이 matlabFunction() 함수를 사용하면 기본적으로 function handle로 결과를 반환 합니다. 입력이 b, x 인 function handle hf1 을 반환하는 것을 확인 할 수 있죠.
function 파일을 만들고 싶을 때는 command 창에 다음과 같이 명령어를 입력합니다.
matlabFunction(f1,'file','function_file1.m');
위의 결과로 function_file1.m 이라는 함수가 만들어 지고 다음과 같이 파일로 저장됩니다.
matlabFunction(f1,'file','function_file1.m','vars',[x b]);
위 명령의 실행 결과 아래와 같이 x, b 의 순서로 설정되었습니다.
이제 함수의 출력 변수 명을 변경해 보죠. 위 식에서 f1 이었던 출력 변수명을 out_f 라는 변수명으로 바꿔보죠.
matlabFunction(f1,'file','function_file1.m','vars',[x b],'outputs',{'out_f'} );
출력 변수 명을 설정 할 때는 위 명령어에서 중괄호{} 를 이용하였습니다. 즉 cell class 로 설정해 주셔야 합니다.
위 명령어의 결과로 다음과 같은 함수가 만들어 집니다.
'programming language > MATLAB' 카테고리의 다른 글
MATLAB cell class (6) | 2011.04.11 |
---|---|
MATLAB taylor, Maclaurin serise (0) | 2011.04.10 |
MATLAB 그래프에 값 넣기 추가, gtext() (0) | 2011.04.09 |
MATLAB 그래프에 값 넣기 (0) | 2011.04.09 |
MATLAB Symbolic math toolbox 를 이용한 latex 변환과 수식 입력 (3) | 2011.04.07 |
MATLAB Bernoulli random variable generation (1) | 2011.04.06 |
MATLAB 과 Excel을 연동해 보자 (15) | 2011.04.06 |
MATLAB Symbolic math 미적분, diff(), int() (0) | 2011.04.05 |
댓글