【问题标题】:Matrix Transpose python 4x3 to 3x4 python矩阵转置 python 4x3 到 3x4 python
【发布时间】:2021-11-09 20:09:31
【问题描述】:

**大家好,我有一个问题。你能帮我解决一下吗,我不明白为什么我的代码不正确。 我有一个矩阵:

a = [
    [33,15,14],
    [3,55,21],
    [0,17,12],
    [7,0,15]
]
and need to transpose it to:
Transpose = [
    [33,3,0,7],
    [15,55,17,0],
    [14,21,12,15]
]
T = [
    [0,0,0,0],
    [0,0,0,0],
    [0,0,0,0]
]
print(T)
for i in range(len(a)):
    for j in range(len(a[0])):
        T[i][j] = a[j][i]

为什么在这段代码之后我得到一个索引超出范围的错误? 它不会像这样迭代:

a[0][0] = a[0][0]
a[0][1] = a[1][0]
a[0][2] = a[2][0]

等等**

【问题讨论】:

  • 使用:T[j][i] = a[i][j]。更一般地,您需要学习如何调试小程序:ericlippert.com/2014/03/05/how-to-debug-small-programs
  • aT = list(map(list, zip(*a)))
  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
  • HI),我需要对矩阵 a 进行转置。所以我认为我上面展示的迭代元素会起作用,但是它不起作用,我不明白为什么。

标签: python matrix transpose


【解决方案1】:

len(a) 给出数组中对象的数量

但是你从不考虑数组的第一个位置是 0。

试试len(a)-1len(a[0])-1 应该可以。

【讨论】:

  • range(4) 只有 0,1,2,3 .. 4 没有提供。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-18
  • 2011-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多