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