gpt4 book ai didi

python - "TypeError: ' 函数 ' object does not support item assignment"

转载 作者:太空狗 更新时间:2023-10-30 03:03:38 27 4
gpt4 key购买 nike

我有两个矩阵

fi = [[f1],           Nij = [[N11 N12 .......N1n],
[f2], [N21 N22 .......N2n],
. ...
. ...
[fn]] [Nn1 Nn2 .......Nnn]]

我想乘:

f1 to each element of the 1st row,
f2 to each element of the 2nd row,

等等。

即我想要 Xij = fi*Nij,其中 fi 是列矩阵,Xij & Nij 是 nxn 矩阵。

我试过用

import numpy as np

fi = np.linspace(1,5, num =5)
fi = np.asmatrix(fi)

def Xij(ai):
Nij = np.ones((5,5))
for i in range(len(fi)):
for j in range(len(fi)):
Xij[i,j] = ai[i] * Nij[i,j]
return Xij

Zij = Xij(fi)

它给我这个错误 TypeError: 'function' object does not support item assignment

为什么?我该如何解决这个问题?

最佳答案

你的问题就在这里:

Xij[i,j] = ai[i] * Nij[i,j]

你命名了一个变量Xij,也是一个函数。此外,当您命名函数时,它会覆盖变量。

正因为如此,当您尝试为函数编制索引并分配其项时,会生成一个错误,因为您无法在函数上执行此操作。下面是一个例子:

>>> def test(): print "Hi"
...
>>> test[1] = "yo!"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'function' object does not support item assignment
>>>

这个错误看起来很眼熟吗?它与您生成的是同一个,因为我完全按照您的方式进行了操作。

要解决此问题,请将您的函数名称更改为 Xij 以外的名称。这样做将使 Xij 等于矩阵,这将支持索引和项目分配。

关于python - "TypeError: ' 函数 ' object does not support item assignment",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18232313/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com