包含cos和sin的python中的矩阵

时间:2017-04-18 15:26:38

标签: python arrays numpy matrix

我是python的初学者。我有这个矩阵:

    Mat RX = (Mat_<double>(4, 4) <<
          1, 0,         0,          0,
          0, cos(roll), -sin(roll), 0,
          0, sin(roll), cos(roll),  0,
          0, 0,         0,          1);

如何在python中创建它?当我尝试这样的事情时,它会出错:

    MatrixX = np.mat('1,2,3;cos(roll),6,7')

2 个答案:

答案 0 :(得分:2)

不要将字符串构造函数用于np.mat。它主要用于缓解matlab用户,并且只能在最简单的情况下工作。它还会创建np.matrix,通常不建议使用。

这里所需要的只是:

np.array([
    [1, 2, 3],
    [4, 5, np.cos(roll)]
])

(换行包装)

答案 1 :(得分:0)

如果你解释cos(),然后构造字符串,这可以工作:

<强>代码:

MatrixX = np.mat('1,2,3;%s,6,7' % cos(roll))

要测试:

>>> np.mat('1,2;3,%s' % math.cos(2))
matrix([[ 1.        ,  2.        ],
        [ 3.        , -0.41614684]])