2016-07-04 5 views
4
Pythonでは

、3つ組は、(例えば)割り当てによって3つの別々の変数に「アンパック」になりますベクトル変数をいくつかの変数に "展開"する方法は?

In [1]: triplet = (1, 'two', (True, True, True)) 

In [2]: first, second, third = triplet 

In [3]: third 
Out[3]: (True, True, True) 

In [4]: second 
Out[4]: 'two' 

In [5]: first 
Out[5]: 1 

それはMATLABでこのような何かをすることは可能ですか?

私が試したすべてが失敗します。例えば:あなたは3つの出力値に割り当てることができcomma-separated listを作成{:}インデックスを使用して細胞増殖に依存することができます

>> triplet = {1, 'two', [true, true, true]}; 
>> [first second third] = triplet 
Too many output arguments. 

答えて

5

[a, b, c] = triplet{:}; 

tripletではなく、行列だった場合は、最初にnum2cellを使用してセル配列に変換できます。

triplet = [1, 2, 3]; 
tripletcell = num2cell(triplet); 

[a, b, c] = tripletcell{:}; 
+0

ありがとうございました。私は、「トリプレット」が、例えば「ダブル(1,3)」であってもうまくいくので、「取引」は2つのうちのより一般的なものであると思っていますか? – kjo

+0

@kjo実際には、各出力を 'deal'への入力引数として提供する必要があります。数値配列を使用した例を更新しました。 – Suever

関連する問題