我想创建列表,所以我使用了:
x_ticks=np.arange(x1, x2, 6)
print(x_ticks)
print(type(x_ticks))
print(x_ticks[5])
结果是:
[-1.15e-14]
<class 'numpy.ndarray'>
Traceback (most recent call last):
File "el_motion.py", line 371, in <module>
print(x_ticks[5])
IndexError: index 5 is out of bounds for axis 0 with size 1
为什么没有打印6个元素?谢谢
编辑
如何使用此列表在3d中绘制细线并进行循环?
x1=-1.15e-14
x2=0.009e-14
x_ticks=np.linspace(x1, x2, 6)
print(x_ticks)
print(type(x_ticks))
print(x_ticks[5])
stepx=(x2-x1)/6
print(stepx)
for xi in range(1, 6):
ax.plot([xi*stepx, xi*stepx], [-6.3e-15, -6.4e-15], [0,0])
结果是一行不在所需位置。我想在平面z上打印它,线的长度由y设置,起点由x定义。
答案 0 :(得分:2)
numpy arange()的第三个参数是step
,元素数取决于x1
,x2
和6
,您可能需要打印x_ticks
。例子:
>>> np.arange(0, 24, 6)
array([ 0, 6, 12, 18])
>>> np.arange(0, 30, 6)
array([ 0, 6, 12, 18, 24])
答案 1 :(得分:2)
我的猜测是x1和x2之间的差小于提供的步长间隔(6)。例如:
np.arange(1, 5)
打印
[1, 2, 3, 4]
而
np.arange(1, 5, 6)
6太大了,因此只返回第一个值
[1]
np.linspace(x1,x2,6)将返回x1一个和x2之间均匀间隔的增量,从而得到6个数字