Я не совсем уверен, что вы имеете в виду, но я думаю вы хотите взять уравнение, которое пользователь вводит в текстовое поле, и превратить его в функцию?
Почему ваш F
меняется с 3 аргументов на 4? то есть F(x,y,y') --> F(1,0,5,-1)
в следующей строке? (Приведенные вами примеры F не соответствуют вашему уравнению ..)
В любом случае, проверьте eval()
, возможно, это то, что вы хотите.
Он принимает команду Matlab в виде строки, например, 2 + 3
и оценивает его.
So
eval('2+3') % gives 5
eval('f=@(x,y,ydash) y*sqrt(1+ydash^2)') % gives a function f
f(1,5,-2) % gives 11.1803
Но в любом случае, как вы ожидаете, что пользователь введет символ квадратного корня и символ квадрата? Подход eval()
основан на том, что они вводят синтаксис, понятный Matlab.
Если вы уточните свой вопрос немного больше, это будет проще.