我尝试运行下面的代码,其中Bwavelength、吞吐量和newflux是列表。在
def ABconversion(Bwavelength, throughput):
ABconstant=[]
c=3e18
i=0
for i in range(0, len(Bwavelength)):
ABconstant.append(((3e18/((Bwavelength[i])**2))*throughput[i]))
i+=1
print len(Bwavelength), len(ABconstant), ABconstant
a=Bwavelength[0]
b=Bwavelength[-1]
h=((b-a)/len(Bwavelength))
ABflux = numpy.trapz(Bwavelength, ABconstant, h)
return ABflux
def ABmagnitude(newflux, ABflux):
ABmagarray=[]
for i in range(len(newflux)):
ABmag = -2.5*log10((newflux[i])/ABflux) - 48.6
ABmagarray.append(ABmag)
return ABmagarray
ABflux1 = ABconversion(Bwavelength, throughput)
print ABflux1
ABmagarray = ABmagnitude(z, ABflux1)
print epoch, ABmagarray
z在文件的前面定义,也是一个列表。在
但是,当我运行这个程序时,我得到的信息是:
^{pr2}$我不太理解这个错误(我对编程相当陌生),但我认为这意味着这两个“形状”的尺寸不一样。我不知道为什么会这样。在
提前谢谢。在
替换:
有:
^{pr2}$根据this documentation,
trapz(y, x, dx, axis)
的参数是:y
-类数组-要集成的输入数组。在x
-可选数组-如果x
为None,则所有y
元素之间的间距为dx
。在dx
-可选标量-如果x
为None,则假定dx
给出的间距。默认值为1。在axis
-可选Int-指定轴。在所以您不应该同时指定}-其中一个应该是
x
和{None
。在也许这就是你想要的:
trapz(Bwavelength, None, h)
。在有关错误消息和NumPy的“braodcasting规则”的详细信息,请参见this answer。在
相关问题 更多 >
编程相关推荐