Функциональный дескриптор может использоваться для вызова функции, например.
f = @sin;
val = f(1.0);
так почему "feval" когда-либо понадобился?
val = feval(f, 1.0);
Когда это полезно?
Ответ 1
Для feval первым аргументом может быть строка с кавычками, что дает вам большую гибкость, чем дескриптор функции. Вы можете делать что-то вроде функций с базовым именем, за которым следует индекс, как в fn1, fn2, fn3, а затем динамически использовать их с помощью feval(['fn', num2str(k)], x, y, z);.
Ответ 2
До версии 14 (MATLAB 7) feval был способом для оценки дескриптора функции... или для оценки функций, когда они указаны по их имени.
Не обязательно всегда знать, какая функция должна использоваться; существует много примеров
Вот глупый пример: пусть в текстовом файле после каждого номера представлено другое слово, которое может быть оценено как математическая функция, например, mean, min, max, square, и задача вычисляет результат после каждый из них,
2,square,2,power,4,log,10 ...
и вы хотите написать программу для прохождения этого текста и вычисления конечного результата...
Например, еще один пример: я хочу определить функцию графика с помощью функции ввода функции пользователя f, поэтому она должна быть гибкой...