Почему нужна функция Matlab "feval"?
Функциональный дескриптор может использоваться для вызова функции, например.
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 был способом для оценки дескриптора функции... или для оценки функций, когда они указаны по их имени.
Источник: Ментальная модель для feval()
.
Ответ 3
Не обязательно всегда знать, какая функция должна использоваться; существует много примеров
Вот глупый пример: пусть в текстовом файле после каждого номера представлено другое слово, которое может быть оценено как математическая функция, например, mean, min, max, square, и задача вычисляет результат после каждый из них,
2,square,2,power,4,log,10 ...
и вы хотите написать программу для прохождения этого текста и вычисления конечного результата...
Например, еще один пример: я хочу определить функцию графика с помощью функции ввода функции пользователя f, поэтому она должна быть гибкой...
[email protected](f,x) plot(f(x))