我在 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
的值。
minFunction
函数,我能够接收和传递变量 fine,使用线
[PowerOut] = main(ThresholdValue,RunMode);
但我不确定如何使用 fmin
函数来获取PowerOut
提供最低值的ThresholdValue
值。我希望在fmin
完成必要的计算后显示ThresholdValue
值。我该怎么做?任何帮助将不胜感激。
谢谢
你应该使用函数fminbnd
,它取代了较新版本的 Matlab 中的函数fmin
。要将函数作为参数传递给fminbnd
请在函数名称前面使用 @
,如下所示:
PowerOut = fmin( @minFunction, 0, 100 );