【发布时间】:2019-10-16 15:21:01
【问题描述】:
def lamb_0(x):
return (1-x)/2
def lamb_1(x):
return (1+x)/2
x = np.array([0.5773502691896257645091488,-0.5773502691896257645091488])
Right_item_2 = (1/2)*np.array([(-1/2)*[(C_n[0,j]*lamb_0(x[0])+C_n[1,j]*lamb_1(x[0]))*(R_n[0,j]*lamb_0(x[0])+R_n[1,j]*lamb_1(x[0]))+(C_n[0,j]*lamb_0(x[1])+C_n[1,j]*lamb_1(x[1]))*(R_n[0,j]*lamb_0(x[1])+R_n[1,j]*lamb_1(x[1]))],(1/2)*[(C_n[0,j]*lamb_0(x[0])+C_n[1,j]*lamb_1(x[0]))*(R_n[0,j]*lamb_0(x[0])+R_n[1,j]*lamb_1(x[0]))+(C_n[0,j]*lamb_0(x[1])+C_n[1,j]*lamb_1(x[1]))*(R_n[0,j]*lamb_0(x[1])+R_n[1,j]*lamb_1(x[1]))]],dtype=float)
TypeError: can't multiply sequence by non-int of type 'float'
#mark:C_n,R_n,S_n are arraies in 2 dimension
【问题讨论】:
-
为什么是 [],
[(C_n[0,j] ...?一步一步地确保最后一行是正确的。该错误表明您创建了一个列表,并尝试将其乘以一个浮点数,例如1/2。[]列个清单。()只是对数学表达式进行分组。不要混淆两者。 -
那是一些极其晦涩难懂的代码。当然必须有更好的方法来做到这一点,对吧?好像有很多重复,大概有办法用循环重写吧。
标签: numpy