5

我有一个函数,它将图像作为参数并产生一个标签和一个分数作为结果。我偶尔想快速测试一个(单元)图像数组,我知道的最方便的方法是使用arrayfun. 这可以很好地获取我的函数产生的标签,但我真的希望输出是一个[label score]单元格列表。

我可以围绕我的函数编写一个包装器,该包装器捕获两个值并将它们作为单元矩阵返回,然后在 内调用该包装器arrayfun,但似乎这是一个足够常见的习语,应该有一种方法可以处理多个返回值方便。有没有?(也许已经存在可以做到这一点的标准便利功能?有点像deal...的反面)

4

1 回答 1

9

您可以使用内置语法将输出作为两个矩阵:

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

例如:

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

然后运行函数:

[A,B] = arrayfun( @foo, magic(5))
于 2012-05-28T19:23:19.127 回答