次のプロトタイプの関数があります
function [bandwidth,density,X,Y,x,y]=kde2d(data,n,MIN_XY,MAX_XY)
基本的に、この関数は上記のように6つの出力を返します。一部はベクトル形式で、その他は数値です。関数からの出力を1行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.