标量变量错误索引是什么意思?python

问题描述

exponent是一维数组。这意味着它exponent[0]一个标量,并exponent[0][i]试图像访问数组一样对其进行访问。

您的意思是说:

L = identity(len(l))
for i in xrange(len(l)):
    L[i][i] = exponent[i]

甚至

L = diag(exponent)

解决方法

import numpy as np

with open('matrix.txt','r') as f:
    x = []
    for line in f:
        x.append(map(int,line.split()))
f.close()

a = array(x)

l,v = eig(a)

exponent = array(exp(l))

L = identity(len(l))

for i in xrange(len(l)):
    L[i][i] = exponent[0][i]

print L
  1. 我的代码打开了一个包含矩阵的文本文件:
    1 2
    3 4
    并将其x作为整数放置在列表中。

  2. x然后将列表转换为数组a

  3. 的特征值a位于中l,特征向量位于中v

  4. 然后,我想取exp(a)并将其放置在另一个array中exponent

  5. 然后,我创建一个L任意长度的单位矩阵l

  6. 我的for循环应该采用的值exponent并替换单位矩阵对角线上的1,但我收到一条错误消息:

invalid index to scalar variable

我的代码有什么问题?