2017-06-23 3 views
0

iは、次のエラーを取得する:パイソンとValueError()(とValueError:連結軸を除くすべての入力アレイの寸法が正確に一致しなければならない)

Traceback (most recent call last): 
File "/home/odroid/trackAndFollow/getPositions.py", line 34, in 
<module> 
tfVeloToCamera = np.hstack((np.vstack((rmVeloToCamera, 
zero_array)),np.transpose(translationVector_veloToCamera))) 
File "/usr/lib/python2.7/dist-packages/numpy/core/shape_base.py", line 
280, in hstack 
return _nx.concatenate(arrs, 1) 
ValueError: all the input array dimensions except for the 
concatenation axis must match exactly 

コード:

rotationVector_veloToCamera = 
np.array([[[-1.77611954,0.30024612,0.76069987]]]) 
translationVector_veloToCamera = np.array([[ 
0.0146381,0.02553223,0.16231193]]) 

rmVeloToCamera,jac = cv2.Rodrigues(rotationVector_veloToCamera) 
tfVeloToCamera = np.hstack((np.vstack((rmVeloToCamera, 
zero_array)),np.transpose(translationVector_veloToCamera))) 

Iその理由が形状またはdtypeであることを読んでください。 hstack内の2つの変数の形状は(4,3)(3,1) であり、両方ともdtype = float64です。

これを引き起こす原因は何ですか?

答えて

0

スタックしようとしているアレイの形状が(4, 3)(3, 1)の場合、4 != 33 != 1という一致する配列の次元はありません。最初の転置を取る場合は、寸法(3, 4)(3, 1)を与えて、それを積み重ねてください。余談として

np.hstack((np.zeros((4, 3)), np.zeros((3,1)))) 
Traceback (most recent call last): 
... 
ValueError: all the input array dimensions except for the concatenation axis must match exactly 

np.hstack((np.zeros((4, 3)).T, np.zeros((3,1)))) 
Out[56]: 
array([[ 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0.]]) 

、あなたの代わりにnp.vstacknp.hstackの、np.concatenateを使用して軸を指定するにはオーバーシフトで見たいと思うかもしれません。

例:

np.concatenate((np.zeros((4, 3)), np.zeros((3,1)).T), axis=0) 
Out[20]: 
array([[ 0., 0., 0.], 
     [ 0., 0., 0.], 
     [ 0., 0., 0.], 
     [ 0., 0., 0.], 
     [ 0., 0., 0.]]) 
+0

私は2番目の1を転置し、今、彼らは(4,3)と(1,3)です。あなたの説明によれば、これは3 = 3以来働くはずですが、私はまだ同じエラーを受けます。 – Drak

+0

@Drak私はもっときれいだったかもしれません。私は編集方法について考えます。まだ 'hstack'を使っています。これは、最初の軸だけをチェックして一致します。 'vstack'は2番目の' dstack'のみをチェックします。 'vstack'を使うか、' stack'を使い、 'axis = 1'を引数に指定することができます。 – EFT

+0

私は 'stack'を試しました。私は 'hstack'と' vstack'(私には '.T'が欠けていたことが分かります)で動作させました。 'numpy.stack'を別の軸=オプションで説明できますか? – Drak

関連する問題