Функция 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 );