尝试在 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 循环中调用矩阵的元素的主要内容,如果未能解决你的问题,请参考以下文章