2012-05-28 77 views
5

我有一個函數將圖像作爲參數,併產生一個標籤和一個分數作爲結果。我偶爾想要快速測試一個(單元)圖像陣列,而我所知道的最方便的方法是使用arrayfun。這適用於獲取我的函數生成的標籤,但我確實希望輸出爲[label score]單元格的列表。如何在調用MATLAB的arrayfun時捕獲多個返回值?

我可以寫在我的函數的包裝來捕捉值,並返回它們作爲細胞基質,然後調用該包裝中的arrayfun,但似乎這是一個足夠常見的成語,應該有工作的方式多個返回值更方便。在那兒? (也許是一個標準的方便的功能已經存在,可以做到這一點有點像的deal相反......?)

+0

你能提供圖片想一些僞代碼來證明你所期待的行爲? – tmpearce

回答

9

您可以通過使用讓您的輸出作爲兩個矩陣內置語法:

[A, B, ...] = arrayfun(fun, S, ...); 

例如:

function [y,z]=foo(x) 
    y= x*x; 
    z = x + 10; 
end 

再運行功能:

[A,B] = arrayfun(@foo, magic(5))