Python 创建由不同大小的矩阵组成的矩阵

Python 创建由不同大小的矩阵组成的矩阵,python,numpy,matrix,Python,Numpy,Matrix,我想创建一个矩阵,其中的元素是矩阵(大小不同)、向量和数字。 例如,我有下两个矩阵,一个向量和一个数字: A = [1 2 3 4 5 6 7 8 9] B = [10 11 12 13] C = [14 15 16] D = 17 我想得到一个矩阵2x2,K,有元素: k_11=A,k_12=B,k_21=C,k_22=D 这个想法是有可能选择矩阵、向量或大矩阵K的数字,就像它们是矩阵的“简单”元素一样。即。: K[0,0]=A,K[0

我想创建一个矩阵,其中的元素是矩阵(大小不同)、向量和数字。 例如,我有下两个矩阵,一个向量和一个数字:

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

B = [10 11
     12 13]

C = [14
     15
     16]

D = 17
我想得到一个矩阵2x2,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
的问题是输入元素的尺寸必须完全匹配。
有什么想法吗


谢谢

首先,将4个对象存储在2D列表中,然后将该列表制作成
numpy.matrix

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

首先,将4个对象存储在2D列表中,然后将列表放入
numpy.matrix

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

在阅读了答案之后,我创建了一个2D列表,但我没有使用
numpy.matrix
,因为通过该列表,我可以选择我想要的“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]

在阅读了答案之后,我创建了一个2D列表,但我没有使用
numpy.matrix
,因为通过该列表,我可以选择我想要的“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]

您可以将较小的矩阵作为对象放置在
object
类型的numpy数组中……您可以将较小的矩阵作为对象放置在
object
类型的numpy数组中……您可能需要解释
object
数据类型以完善您的答案,并注意限制,例如,无法对对象矩阵进行矩阵运算。呃,实际上我不确定
object
的一般限制。在这里,很明显矩阵数学是行不通的(元素有不同的形状…)。但不管代表什么样的数据,情况总是这样吗?我不想提出任何建议,我真的不知道。你可能想解释一下
对象
的数据类型来完善你的答案,注意一些限制,例如,无法对对象矩阵进行矩阵计算。呃,实际上我不确定
对象
的一般限制。在这里,很明显矩阵数学是行不通的(元素有不同的形状…)。但不管代表什么样的数据,情况总是这样吗?我不想提出任何建议,我真的不知道。
K=[[A,C],[B,D]]
也应该有效。这是一个列表列表。列表可以包含任何元素的混合,例如,
[[A],[C,B,D]]
,[[A,C],[B,D,None]`。
K=[[A,C],[B,D]]
也应该有效。这是一个列表列表。列表可以包含任何元素的混合,例如
[[A],[C,B,D]]
,[[A,C],[B,D,None]`。