访问作为矩阵中元素的数组的元素

Acessing element of an array which is a element in a matrix

目前我正在进行一个项目,我必须将 Matlab 代码转换为 Python 代码。 现在我被困在一个小问题上,这可能是一个大问题。

例如,我有一个矩阵,我想给位置 [0][i] 赋值,比如 1,i 是 0 到 5。 矩阵是 4x4(对于 [0][5] 来说很小)但是在位置 [0][0] 上是一个包含 3 个元素的数组。

所以它看起来像 codeM = [[array, 1 , 2, 3], [数组, 1, 2, 3], [array, 1 , 2, 3]]code 和 array 只是 code array =[1,2,3]。 code

I hope I descripted it clear. Feel free to ask more :D

现在我遇到的问题是,我希望数组的第一个元素是 [0][0],这样第一行中的数字 3 就是 [0][5]。是否可以将数组的第一个元素声明为矩阵位置[0][0]? 我很感激每一个解决方案或想法。谢谢:)

使用可迭代的 解包运算符 (*) 来解压你的可迭代对象可能是更好的解决方案

Python 中的解包指的是在单个赋值语句中将可迭代值分配给变量元组(或列表)的操作。

示例:

array =[1,2,3]
M = [[*array, 1 , 2, 3], [*array, 1 , 2, 3], [*array, 1 , 2, 3]]
print (M) # [[1, 2, 3, 1, 2, 3], [1, 2, 3, 1, 2, 3], [1, 2, 3, 1, 2, 3]]
print (M[0][5]) # 3

在列表的开头添加值,有多种解决方案,这里是示例之一:

array =[1,2,3]
M = [[array, 1 , 2, 3], [array, 1 , 2, 3], [array, 1 , 2, 3]]
M = [[0,0]+l for l in M]
print (M) # [[0, 0, [1, 2, 3], 1, 2, 3], [0, 0, [1, 2, 3], 1, 2, 3], [0, 0, [1, 2, 3], 1, 2, 3]]
print (M[0][5]) # 3

您也可以使用 Python insert() 函数:

insert() 方法将一个元素插入列表的指定索引处。

Syntax: list.insert(idx, elem)

for l in M:
    l.insert(0,0)
    l.insert(1,0)
print (M) # [[0, 0, [1, 2, 3], 1, 2, 3], [0, 0, [1, 2, 3], 1, 2, 3], [0, 0, [1, 2, 3], 1, 2, 3]]
print (M[0][5]) # 3