Функция MatLab fmin

У меня есть файл.m в Matlab с именем PowerMinimiser и две функции в нем

function PowerMinimiser
    PowerOut = fmin(minFunction,0,100);
    display(PowerOut)
end

а также

function PowerOut = minFunction(varargin)
    RunMode = 2;
    ThresholdValue = 10;
    if nargin > 0
        ThresholdValue  = varargin{1};
    end
    %Receive PowerOut value from .main file and pass in ThresholdValue and
    %RunMode values:
    [PowerOut] = main(ThresholdValue,RunMode);
end

Теперь то, что я хотел бы сделать, это использовать Matlab fmin функция, чтобы я мог найти значение для переменной ThresholdValue который даст наименьшее возможное значение для переменной PowerOut, Значение для ThresholdValue число от 1 до 100, и передается в функцию в main.m где выполняется ряд вычислений, а затем значение для PowerOut выводится.

С использованием minFunction Функция Я могу получить и передать переменную в порядке, используя строку

     [PowerOut] = main(ThresholdValue,RunMode);

но я не уверен, как использовать fmin функция, чтобы получить значение ThresholdValue это дает самое низкое значение для PowerOut, Я хотел бы ThresholdValue значение, которое будет показано, как только fmin сделал необходимые расчеты. Как я могу это сделать? Любая помощь будет принята с благодарностью.

Спасибо

1 ответ

Вы должны использовать функцию fminbnd, который заменил fmin функция в новых версиях Matlab. Чтобы передать функцию в качестве аргумента fminbnd использование @ перед именем функции, вот так:

PowerOut = fmin( @minFunction, 0, 100 );
Другие вопросы по тегам