【发布时间】:2015-06-06 13:00:49
【问题描述】:
我有 2 个向量,posVec 和 dirVec,我希望将它们的值保持在 (0.0,0.0,0.0)。
所以我设置了临时向量 t_pos & t_dir 并根据 cylCut
的值改变它们的值然后在循环的下一次迭代中,我重置临时向量。
代码:
import numpy as np
posVec = np.array([0.0,0.0,0.0]) # orginal vectors
dirVec = np.array([0.0,0.0,0.0])
print "................."
print 'Before'
print "................."
print posVec
print dirVec
print "................."
for cylCut in range(0,3):
t_pos = posVec # temporary vectors
t_dir = dirVec
if cylCut == 0: # set temp vects accordingly
print '0'
t_pos[0] = 1.0
t_dir[0] = 1.0
if cylCut == 1:
print '1'
t_pos[1] = 1.0
t_dir[1] = 1.0
if cylCut == 2:
print '2'
t_pos[2] = 1.0
t_dir[2] = 1.0
print t_pos
print t_dir
print "................."
print 'After'
print "................."
print posVec
print dirVec
print "................."
出于未知原因(至少对我而言),posVec 和 posDir 的内容也正在更改。
我得到的输出,
.................
Before
.................
[ 0. 0. 0.]
[ 0. 0. 0.]
.................
0
[ 1. 0. 0.]
[ 1. 0. 0.]
1
[ 1. 1. 0.]
[ 1. 1. 0.]
2
[ 1. 1. 1.]
[ 1. 1. 1.]
.................
After
.................
[ 1. 1. 1.]
[ 1. 1. 1.]
.................
为什么会这样?我没有明确地改变向量。 Python/Numpy 会自动链接变量吗?为什么要这么做?我该如何阻止它?
【问题讨论】: