我一直在为我的一位教授努力将MatLab代码转换为python(不是只是为了把一些东西拼在一起的作业),我只停留在这一部分上。
当我运行代码时,我得到UnitTypeError:“只能将'exp'函数应用于无量纲的数量”,我尝试解决此问题的所有方法均无效。我认为该错误是由linspace命令引起的,但不确定。任何帮助都会很棒。
这里是线
IM0 = ((2*h*c**2)/(l**5))/(np.exp(h*c/( h*c/(k*T1*l)))-1)
常量来自天体
h = const.h;
c = const.c;
k = const.k_B;
l = np.linspace(0, 1.5e-6, 1500);
T1 = 3750
astropy
常量是类的实例。在将它们用作np.exp()
:
import astropy.constants as const
import numpy as np
h = const.h.value
c = const.c.value
k = const.k_B.value
l = np.linspace(0, 1.5e-6, 1500);
T1 = 3750
IM0 = ((2*h*c**2)/(l**5))/(np.exp(h*c/( h*c/(k*T1*l)))-1)
但是请注意,IM0
存在数值问题。所有l
的分母为零。