2016-09-28 28 views
1

我有一個功能進行優化,以找到其最大值(使用Matlab)。仿真模型的功能部分,因此它存儲在Matlab腳本文件中。如何在Matlab腳本文件中的函數的最大值?

注意,在使用功能正常的情況下,我可以使用fminbnd命令,然後取函數的負做到最大化。使得

G(X)= -f(x)的

例如

[x fval] = fminbnd(@(x)-tan(cos(x)),3,8) 

但是我正在尋找一種方式來做到發現使用(或功能-ve找到最大值)爲腳本函數的最大值。

回答

2

如果我正確理解你在找什麼,你有一組命令需要一些輸入變量併產生一個結果,但是這些命令位於腳本文件而不是MATLAB函數中。你想在腳本上運行fminbnd,而不是將命令重寫爲函數?

顯而易見的問題是爲什麼你不想採取簡單的選擇,並將代碼放入函數。假設你不能,出於某種原因,如何構建一個運行腳本並返回結果的'容器'函數?喜歡的東西:

function result = containerFunction(myScriptName, inputData) 

% Input Arguments: 
% myScriptName : string, filename (not extension), e.g. 'myScript' 
% inputData : any data compatible with the script defined in myScriptName 

% Output Arguments: 
% result : must be created by the script defined in myScriptName 

eval(myScriptName); 

你可以調用從fminbnd代替containerFunction。

相關問題