【问题标题】:Acessing element of an array which is a element in a matrix访问数组的元素,它是矩阵中的元素
【发布时间】:2021-12-24 00:38:06
【问题描述】:

目前我正在做一个项目,我必须将 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

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

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

【问题讨论】:

    标签: python arrays matrix element using


    【解决方案1】:

    也许是使用可迭代解包操作符(*)解压您的可迭代对象的更好解决方案

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

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

    【讨论】:

    • 您好,谢谢您的解决方案!它帮助很大!但它也适用于二维矩阵吗?
    • @pypy 欢迎您,我很高兴它有所帮助。对于新问题,最好写新帖子
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    相关资源
    最近更新 更多