exponenta event banner

Передать функцию другой функции

Можно использовать дескрипторы функций в качестве входных аргументов для других функций, которые называются функциональными функциями. Эти функции вычисляют математические выражения в диапазоне значений. Типичные функциональные функции включают integral, quad2d, fzero, и fminbnd.

Например, чтобы найти интеграл естественного логарифма от 0 до 5, передайте ручку log функция для integral.

a = 0;
b = 5;
q1 = integral(@log,a,b)
q1 = 3.0472

Аналогично, чтобы найти интеграл sin функции и exp функция, передать дескрипторы этим функциям integral.

q2 = integral(@sin,a,b)
q2 = 0.7163
q3 = integral(@exp,a,b)
q3 = 147.4132

Кроме того, можно передать дескриптор анонимной функции для выполнения функций. Анонимная функция - это функция MATLAB ® на основе однострочного выражения, для которой не требуется файл программы. Например, вычислить интеграл x/( ex-1) в диапазоне[0,Inf]:

fun = @(x)x./(exp(x)-1);
q4 = integral(fun,0,Inf)
q4 = 1.6449

Функции, принимающие функцию как вход (называемые функциональными функциями), ожидают, что функция, связанная с дескриптором функции, имеет определенное количество входных переменных. Например, при вызове integral или fzero, функция, связанная с дескриптором функции, должна иметь только одну входную переменную. При звонке integral3, функция, связанная с дескриптором функции, должна иметь три входные переменные. Сведения о вызове функций с дополнительными переменными см. в разделе Параметризация функций.

Связанные примеры

Подробнее