2016-07-12 13 views
0

を作成します。私は要素が(異なるサイズの)行列、ベクトルや数値であるマトリックスを作成したいサイズの異なる行列で作られたマトリックス

A = [1 2 3 
    4 5 6 
    7 8 9] 

B = [10 11 
    12 13] 

C = [14 
    15 
    16] 

D = 17 

私は要素whith、マトリックス2×2、Kを取得したい:
k_11 = A, k_12 = B, k_21 = C, k_22 = D例えば は、私は、次の二つの行列一のベクトルとつの番号を持っています。

アイデアは、彼らが行列の「シンプル」の要素になりますように、Kを大行列の行列、ベクトルまたは数字を選択する可能性を持つことです。すなわち: K[0,0] = A, K[0,1] = Bのように。

まず、行列、ベクトル、数値のリストをK.append(A) ...で得ることができると思いますが、リストを行列に変換できないことがわかりました。
そして第二に、私はnumpy.bmatでブロック行列を作成しようとしました。 bmatの問題は、入力要素の次元が正確に一致しなければならないということです。

ありがとうございました。

+1

はあなたがオブジェクトとして小さな行列を置くことができるしあなたが制限に注意して、あなたの答えを仕上げるために 'object'データ型を説明することがありますタイプ' object' ... – Benjamin

答えて

2

まず、numpy.matrixにリストを作成し、その後、2次元リストで4つのオブジェクトを格納します。

K = matrix([[A, B], [C, D]) 
+0

のnumpyの配列、例えば、オブジェクト行列に行列演算を行うことができなくなります。 – Benjamin

+0

実際、私は 'object'の*一般的な制限についてはわかりません。ここでは、行列の数学がうまくいかないことが明らかです(要素の形が異なります...)。しかし、どんなデータが表現されているかにかかわらず、常にそうですか?何も示唆しようとしていない、私は正直に分かりません。 – polwel

0

は答えを読んだ後、私は2Dのリストを作成したが、リストで、私は「マトリックス」の要素を選択することができますので、私はnumpy.matrixを使用していない私が欲しいです。ここでは答え:

>>> K = [ ] 
>>> K.append([ ]) 
>>> K.append([ ]) 
>>> K[0].append[A] 
>>> K[0].append[C] 
>>> K[1].append[B] 
>>> K[1].append[D] 

だから、私は、要素Aを選択する場合:

>>> K[0][0] 

と要素B:

>>> K[1][0] 
+0

'K = [[A、C]、[B、D]]'も有効です。これはリストのリストです。リストには要素の任意の組み合わせを含めることができます。 [[A]、[C、B、D]]、[[A、C]、[B、D、なし]] 'のようになります。 – hpaulj

関連する問題