我有一个函数,它将图像作为参数,并生成标签和分数。我偶尔想要快速测试一个(单元格)图像数组,而我所知道的最方便的方法是使用arrayfun
。这适用于获取我的函数生成的标签,但我真的希望输出是[label score]
单元格的列表。
我可以在我的函数周围编写一个包装器,它捕获两个值并将它们作为单元格矩阵返回,然后在arrayfun
中调用该包装器,但似乎这是一个常见的习惯用法,应该有一个更方便地使用多个返回值的方法。在那儿? (也许已经存在可以做到这一点的标准便利功能?类似于deal
的反面...)
答案 0 :(得分:9)
您可以使用内置语法将输出作为两个矩阵:
[A, B, ...] = arrayfun(fun, S, ...);
例如:
function [y,z]=foo(x)
y= x*x;
z = x + 10;
end
然后运行函数:
[A,B] = arrayfun( @foo, magic(5))