MatLab fmin功能

时间:2013-01-26 17:15:16

标签: function matlab fminsearch

我在matlab中有一个名为PowerMinimiser的.m文件,其中有两个函数

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的值。 / p>

使用minFunction函数,我能够使用行

接收并传递变量
     [PowerOut] = main(ThresholdValue,RunMode);

但我不确定如何使用fmin函数获取ThresholdValue的值,该值为PowerOut提供最低值。我想在ThresholdValue完成必要的计算后显示fmin值。我怎样才能做到这一点?任何帮助将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

您应该使用函数fminbnd,它在较新版本的Matlab中替换了fmin函数。要将函数作为参数传递给fminbnd,请在函数名前面使用@,如下所示:

PowerOut = fmin( @minFunction, 0, 100 );