我有一个带有以下原型的函数
function [bandwidth,density,X,Y,x,y]=kde2d(data,n,MIN_XY,MAX_XY)
基本上,该函数返回如上所示的6个输出,其中一些是矢量形式,而另一些是数值。我应该如何优雅地将函数的输出传递到一个1x6的单元数组中?
怎么样?
[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.
len
。 - Shai