2013-04-14 4 views
0

Мне нужно написать функцию в октаве формы f (fun, x, m), где fun - это еще одна функция , но у меня есть проблема с этим, как я могу это сделать? (поместите функцию как переменную)Функция с другой функцией как переменная

+0

@HelloWorld - ваше предложение не так хорошо. Посмотрите на ответ [Roney] (http://stackoverflow.com/a/15996903/1714410) - используя функции. удалите свой комментарий. – Shai

ответ

4

Вы можете использовать «ручки функций».

В соответствии со статьей данного here,

ручка = @functionname% возвращает дескриптор указанной функции MATLAB®.

Функциональный дескриптор - это значение MATLAB, которое служит средством косвенного вызова функции. Вы можете передавать функции в вызовы другим функциям (часто называемые функциональными функциями). Вы также можете хранить дескрипторы функций в структурах данных для последующего использования (например, как обратные вызовы Handle Graphics). Функциональный дескриптор является одним из стандартных типов данных MATLAB.

В следующем примере создается дескриптор функции встроенной функции humps и присваивается ее переменной fhandle.

fhandle = @humps; 

Теперь вы можете передать дескриптор другой функции так же, как и любой аргумент. В этом примере передается только что созданный ключ функции fminbnd, который затем минимизирует с интервалом [0.3, 1].

x = fminbnd(fhandle, 0.3, 1) 
x = 
    0.6370 
+0

Большое спасибо за помощь :) – Dimitri

Смежные вопросы