如何将多输出返回传递给函数?

时间:2016-03-19 05:55:10

标签: matlab

如果我有多输出代码

exec($runCMD.' 2>', $out)

我们可以直接将foo()的结果传递给另一个函数,

function [a b] = foo() 
  a = 1;
  b = 2;
end

仅打印1。

在测试中,我不确定如何破坏其论点。它不是一个数组。 我们必须这样做吗?

function test(a)
   a
end

test(foo());

1 个答案:

答案 0 :(得分:4)

不,没有别的办法。

其中一个变体是使用单元格数组和逗号分隔列表。例如:

C = cell(1,2);
[C{:}] = foo();
bar(C{:})

您可以将上述代码重复用于任意数量的输入/输出参数,只需将上面的2替换为实际数字即可。

C = cell(1,n);
[C{:}] = foo();  % equivalent to [C{1},C{2},...,C{n}] = foo()
bar(C{:})        % equivalent to bar(C{1},C{2},...,C{n})
相关问题