我有两个矩阵
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,
等等。
IE。我想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
等于矩阵,这将支持索引和项目分配。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)