2013-07-09 65 views

回答

4

致電時(幾乎)所有功能說在matlab中,您可以請求比指定更少的輸出。所以,是的,你給的例子應該工作得很好。

有一些聰明的事情可以做到這一點,比如在函數中使用nargout來查看請求了多少個輸出參數,並且只計算被請求的值作爲優化技巧。

+1

但請注意 - 如果您請求的輸出數量少於他們可以提供的數量,一些(IMNSHO稍有可疑的)功能將改變行爲並返回不同的東西。 – Edric

4

它取決於函數的定義,以及您想要獲得哪個輸出。

並非所有的功能都可以這樣做,您可以在幫助文檔的特定功能開頭找到每個功能的所有選項。

如果你只想要2,或3輸出,並且希望還能節省一點不有趣的結果計算時,你可以使用~選項,像這樣(爲版本2009年b及更高版本):

[~, var1, var2]=function 
+1

注意:波浪詭計只出現在Matlab 2009b中,所以如果您的腳本需要在早期版本上工作,您可能需要避免它。 [關於Matlab的藝術的Loren](http://blogs.mathworks.com/loren/2009/09/11/matlab-release-2009b-best-new-feature-or/) – Alan

+0

+1。請注意,在R2009b中引入了忽略輸出的波浪號,這打破了舊版本的兼容性。 –

+0

你說得對,我加了。我自己使用2008a,但忘了寫它:) – Adiel

0

許多函數允許傳遞選項以更改函數的行爲方式。我用/寫了各種數值求解函數一點,一個很好的選項,例如是LSMR function(s)。否則,如果您可以操縱原件,請在輸入之前或結束時使用內聯子例程來生成所需的輸出。

或者,如果你不能它將返回單元陣列或矢量,你可以通過anonymous function這樣產生所需的輸出。

真的,可以做很多方法。非常有關聯性。

相關問題