这是我的小test.py:
1 import numpy as np
2 from uncertainties import ufloat
3 import matplotlib.pyplot as plt
4
5 x1 = np.arange(11)
6 x = [ufloat(x, 0.1) for x in x1]
7
8 plt.plot(x.n, np.arange(11))
它会产生以下错误:
AttributeError: 'list' object has no attribute 'n'
我想这是因为我将ufloats定义为一个数组,现在这些值与错误本身就是该数组的元素。但我仍然可以用x
来计算,并从不确定性的传播中得到正确的误差。
我怎么能告诉python只绘制名义值,但仍能用ufloats的误差计算?
编辑: 我试过了:
5 x1 = np.arange(11)
6 err = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
7
8 x = ufloat(x1, err)
它出现以下错误:
AttributeError: 'numpy.ndarray' object has no attribute 'strip'
答案 0 :(得分:0)
我认为你应该像这样提取每个名义价值:
plt.plot([x[i].n for i in np.arange(11)], np.arange(11))