9

我有一个具有以下原型的函数

function [bandwidth,density,X,Y,x,y]=kde2d(data,n,MIN_XY,MAX_XY)

基本上该函数返回 6 个输出,其中一些是矢量形式,而另一些是数字量。如何优雅地将函数的输出传递到 1 x 6 单元阵列?

4

1 回答 1

13

怎么样

[a{1:6}] = kde2d( data, n, MIN_XY, MAX_XY )

编辑

考虑这个烦人的功能

def foo(n):
  if n == 1:
    return [1, ]
  elif n == 2:
    return [1, ], {'a': 2}
  elif n == 3:
    return [1, ], {'a': 2}, (3, 3, 3)
  return [1, ], {'a': 2}, (3, 3, 3), None

您始终可以将所有输出放入一个元组中:

for i in range(1, 5):
  f = foo(i)
  print('got {} outputs: {}'.format(len(f), f))

这个简单循环的输出是:

got 1 outputs: [1]
got 2 outputs: ([1], {'a': 2})
got 3 outputs: ([1], {'a': 2}, (3, 3, 3))
got 4 outputs: ([1], {'a': 2}, (3, 3, 3), None)

如果您想获得特定的输出:

f = foo(2)
f[1]   # accessing the second output, {'a': 2} in this example.
于 2013-03-20T12:53:58.967 回答