2017-11-24 18 views
2

私はPythonで行列Tを取得しようとしていますが、私の間違いが分かりません。これは私のコードです:私は、スクリプトを実行したい場合は行列の次元の問題 - Python

c=dx/L 
s=dy/L 
cc=c**2  
ss=s**2  
cs=c*s 
T = np.matrix(((cc, cs,-cc,-cs),     
       (cs, ss,-cs,-ss),     
       (-cc,-cs, cc, cs), 
       (-cs,-ss, cs, ss)) 

与えられている値は、DX、DYとL.ているそれだけで言う:

"..../miniconda3/envs/myenv/lib/python3.6/site-packages/numpy/matrixlib/defmatrix.py", line 240, in __new__ 
    raise ValueError("matrix must be 2-dimensional") 
ValueError: matrix must be 2-dimensional 

あなたの誰も私を助けることができますか?なぜ行列が2次元であってはならないのか分かりません。配列としてTを作る おかげ

答えて

1

試行:numpyのモジュールで

T = np.array(((cc, cs,-cc,-cs), 
       (cs, ss,-cs,-ss), 
       (-cc,-cs, cc, cs), 
       (-cs,-ss, cs, ss))) 

マトリックスはわずか2次元であるが、配列はN次元です。

+0

ありがとうございます!この方法で動作しますが、np.matrixで動作しない理由はまだ私にとってはミステリーです。 –

+0

マトリックスは、操作によって2次元の性質を保持する特殊な2次元配列です。 numpyのその他のドキュメントを参照してください: https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.matrix.html – pobu