2014-12-24 44 views
1

有一種優雅的方式來調用fminsearch優化函數的n個輸出?或將一個需要定義返回原函數的n個輸出新的功能和應用fminsearch這一新功能呢?fminsearch優化n個輸出在Matlab

編輯的澄清:

即下式給出:

函數[OUT1,OUT2] = MYFUNC(X)

%適當的代碼

什麼是最簡單的找到最小化out2的x值的方法?

+0

此:http://stackoverflow.com/a/1344794/3139711可能是一種選擇,但如果這是更優雅比你的意圖來定義一個新的功能是開放的爭端。 – knedlsepp

+0

我看到的是以前的帖子,但就像你說的,這是相當類似定義一個新的功能(只是更普遍適用)。我希望能有更多的單線解決方案,但也許這是不可能的。 – John

回答

0

如果你的函數調用foo

function foo(i,...,x) 

end 

您可以定義一個名爲功能:

function foo_x(x) 
    foo(...,x); 
end 

或者使用匿名函數:

@(x) foo(...,x) 

,並把它傳遞給fminsearch 。


還有另一種方法,這是正在(AB)經常使用的,使用本地功能分配的輸入。我不推薦它,因爲它打破了很多好的軟件工程實踐。

+0

感謝您的回覆!看來你在尋找優化單輸出功能,針對特定的輸入,而我試圖優化多輸出功能,但只有一個輸出。即我有函數[OUT1,OUT2] = MYFUNC(x)和我想找到x的最小化OUT2的值。再次感謝! – John