收到错误消息“只能将'exp'函数应用于无量纲的数量”,不确定如何解决此问题

问题描述 投票:0回答:1

我一直在为我的一位教授努力将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
python numpy astropy exp
1个回答
0
投票

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的分母为零。

© www.soinside.com 2019 - 2024. All rights reserved.