Я бы предложил следующую альтернативу, предполагая, что G
, в вашем примере, строка '-exp(-x)'
. STR2FUNC преобразует строку вашей функции в анонимную функцию, которую вы затем можете оценить как обычно.
gradFun = str2func(['@(x)' G]); %# this assumes that x is the independent variable in G
x = whatever;
answer = gradFun(x); %# or answer = gradFun(whatever);
РЕДАКТИРОВАТЬ: Если GetGradient
возвращает символическое выражение, вы можете преобразовать его в строку, используя char
.