首页 > 解决方案 > 访问数组的元素,它是矩阵中的元素

问题描述

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

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

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

我希望我描述清楚。随时问更多:D

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

标签: pythonarraysmatrixelementusing

解决方案


也许是使用可迭代解包运算符(*)解包可迭代对象的更好解决方案

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

或者在 list 开头添加值,有几种解决方案,这里是一个例子:

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() 方法将一个元素插入到列表中指定索引处。

语法: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

推荐阅读