在 Python 中从 For 循环中存储多个矩阵

Posted

技术标签:

【中文标题】在 Python 中从 For 循环中存储多个矩阵【英文标题】:Storing Multiple Matrices from a For Loop in Python 【发布时间】:2021-11-18 12:38:40 【问题描述】:

我正在尝试将以下 Matlab 代码转换为 Python:

  n = 10 ;
  T = cell(1, n) ;
  for k = 1 : n
    T1,k = 20*k + rand(10) ;
  end

它存储了 for 循环生成的所有矩阵。如何在 Python 中编写类似的代码?

【问题讨论】:

您能否添加一个预期输出的示例? 【参考方案1】:

您可以使用普通列表:

import numpy as np
n = 10
t = []
for k in range(n):
  t.append(20 * (k+1) + np.random.rand(n,n))
print(t)

【讨论】:

我喜欢你保留问题代码的两个空格缩进样式:-) 这是正确的,但 pythonnumpy 的不常见组合。可能是 OP 正在寻找的。​​span> 感谢@Mohammad。它运作良好。现在,如何在一个数组中分别查看每个矩阵?例如,在Matlab中,运行我在问题中提到的Matlab代码后,我运行以下T1=T1,1以查看第一个矩阵和T2=T1,2等。我怎么能在python中做到这一点?再次感谢您。 我知道了@Mohammad。我只需要在 python 中执行以下操作:t1=t[1] 查看第一个数组,t2=t[2] 查看第二个数组,依此类推。 @MMKarim 小心,因为 python 中的索引从 0 开始,所以第一个元素应该是 t[0] 而不是 t[1]。如果您想将它们全部放在一个数组中,可以使用tall =np.ravel(t).reshape(10,-1)

以上是关于在 Python 中从 For 循环中存储多个矩阵的主要内容,如果未能解决你的问题,请参考以下文章

在 numpy 中从具有索引的 2D 矩阵构建 3D 布尔矩阵

尝试在 Python 的 for 循环中调用矩阵的元素

将 for 循环中的多个打印输出值存储到列表或变量中

在bash中从循环执行python的输出

避免在Python中嵌套for循环

在数组中存储for循环的结果