2017-11-29 12 views
1

사용자가 입력 한 매개 변수를 기반으로 MATLAB에서 기호 함수를 만든 다음 fminsearch (fun, x0)를 사용하여 해당 함수를 최소화하려고합니다. 상징적 기능을 허용한다. sym2poly() 이외의 사용자 입력을 기반으로 임의의 기호 함수를 생성하는 방법을 찾을 수 없습니다. sym2poly()는 다항식 함수를 생성하려는 경우에만 작동합니다. 어떤 아이디어?사용자 입력을 기반으로 MATLAB에서 기호 함수를 만드는 방법

답변

1

나는 str2func 당신이 찾고있는 무엇이라고 생각 :

% this is actually your user input, it could be taken, 
% for example, using inputdlg function 
user_in = inputdlg('Enter your function:','Function'); % '2*x + 4' 

% the user input is transformed into a function handle 
% that can be passed to fminsearch 
fh = str2func(['@(x) ' user_in]); 

% the function created from the user input is evaluated 
x = fminsearch(fh,x0); 

당신은 또한 입력 인수를 정의하는 데 사용 할 수 있습니다 (하지만 난 fminsearch으로 필요하다고 생각하지 않습니다) :

str = '@(x,y) 2*x + 4*y + 1'; 
fh = str2func(str); 
더 infos에 대한

:

+0

고마워요! 이것은 내가 염두에 두었던 것이 아니지만 그럼에도 불구하고 잘 작동했습니다! – Beth

+0

당신은 환영합니다 :) –