【发布时间】:2019-12-20 07:03:40
【问题描述】:
我收到一条错误消息,尝试在 Python 中运行脚本以重复进行金箔辐照冷却时间。这是错误:
Traceback (most recent call last):
File "C:/Users/wolfk/PycharmProjects/Reactor Phys In-House/iterations.py", line 26, in <module>
cr_tot /= math.e ** (-2.98256E-6 * out_times[l])
ValueError: operands could not be broadcast together with shapes (7,) (6,) (7,)
代码非常混乱,因为我大部分使用数值而不是变量,但数学并不重要,我可以稍后验证。我需要做的是让这个东西运行起来!所以你知道,进出时间的向量在设计上是不同的长度,我试着让它们的长度相同,所以这不是问题。代码如下:
import numpy as np
import math
import matplotlib.pyplot as plt
in_times = np.array([[697800, 603840, 74460, 161520, 428880, 75960, 62760]])
out_times = np.array([[248880, 3960, 9240, 5400, 5880, 8760]])
cr_tot = 0
cr_fast = 0
i = 1
j = 1
k = 0
l = 0
while i < 13:
if j == 1:
cr_tot /= math.e ** (-2.98256E-6 * in_times[k])
cr_fast /= math.e ** (-2.98256E-6 * in_times[k])
cr_tot += ((2.98256E-6 * 4950377) / 0.021554) / (1 - math.e ** (-2.98256E-6 * in_times[k]))
cr_fast += ((2.98256E-6 * 2141114) / 0.043109) / (1 - math.e ** (-2.98256E-6 * in_times[k]))
j -= 1
k += 1
else:
cr_tot /= math.e ** (-2.98256E-6 * out_times[l])
cr_fast /= math.e ** (-2.98256E-6 * out_times[l])
j += 1
l += 1
i += 1
xi_tot = (2.98256E-6 * 4950377) / (0.021554 * cr_tot)
xi_fast = (2.98256E-6 * 2141114) / (0.043109 * cr_fast)
cr_tot *= (2.98256E-6 * 4950377) / (0.021554 * xi_tot * math.e ** (-2.98256E-6 * 660) * (1 - math.e ** (-2.98256E-6 * 1000)))
cr_fast *= (2.98256E-6 * 2141114) / (0.043109 * xi_fast * math.e ** (-2.98256E-6 * 660) * (1 - math.e ** (-2.98256E-6 * 2000)))
print(cr_tot)
print(cr_fast)
如果能得到任何帮助,我将不胜感激。 :)
【问题讨论】:
标签: python arrays numpy vector