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

Posted

技术标签:

【中文标题】尝试在 Python 的 for 循环中调用矩阵的元素【英文标题】:Trying to call elements of a matrix within a for loop in Python 【发布时间】:2022-01-23 07:18:05 【问题描述】:

我正在为我之前加入的一个天体动力学研究小组将代码从 Matlab 转换为 Python。我正在尝试使用牛顿法来解决需要迭代过程的轨道的偏心异常。

我在 for 循环之外创建了矩阵 M,并希望在 for 循环中索引该矩阵。

示例:(这就是我在 Matlab 中编写它的方式,我正在寻找如何在 Python 中执行此操作,特别是调用 M 的元素,这些元素与 for 循环正在运行的 i 值的位置一致.)

M = [1, 2, 3, 4]  (where M(1) = 1 and M(3) = 3 and so on) 

for i = 1:4 

   E(i) = 2 - M(i)

end

Result: E = [1, 0, -1, -2]

如果有任何建议,我将不胜感激。

谢谢!

【问题讨论】:

我认为您需要先学习如何在 MATLAB 中很好地编写代码,然后再深入了解另一种难以理解的语言。 SO 不是一个教程网站,您显然需要一个介绍性教程。 【参考方案1】:

我不完全确定我理解你的问题,但这就是你要找的吗?

E = [2 - i for i in range(1, 5)]
# [1, 0, -1, -2]

所以,如果你有一个可迭代的“矩阵”M,这就是解决方案

M = [1, 2, 3, 4]

E = [2 - i for i in M]
# [1, 0, -1, -2]

【讨论】:

python中与MATLAB大致相当的有numpy和scipy。【参考方案2】:

“直接翻译”成 Python 是:

M = [1, 2, 3, 4]
E = [0, 0, 0, 0]

for i in range(4): ##from 0 to 3
    E[i] = 2 - M[i]
    
print(E)

请注意,Python 中的第一个索引始终为 0 我保留了 for 循环,因为它可能更容易理解。

【讨论】:

以上是关于尝试在 Python 的 for 循环中调用矩阵的元素的主要内容,如果未能解决你的问题,请参考以下文章

避免在Python中嵌套for循环

嵌套for循环慢python用于计算特殊标准偏差

在 Python 中减少 for 循环是不可能的?

使用 Python for 循环在句子中添加文本

如何在循环中使用python矩阵的维度

在每 2 行之后生成一个升序值矩阵,在 R 中没有 for 循环