

解決方法を教えていただければ嬉しいです。  
このようなエラーが出ました「TypeError: 'map' object is not subscriptable」

動かしたいプログラムは以下です。

「# パラメータ(実数)」の項目まではエラーなしですが「# 各座標の計算」でこのエラーがでています。

[code]

    import numpy as np
    from mpl_toolkits.mplot3d import Axes3D
    import matplotlib.pyplot as plt
    from sympy import *
    from sympy.abc import *
    
    init_printing()
    
    # 単位ベクトルとか角度の定義
    angles = symbols("phi_0 phi_1 phi_2")# 原点から肩部への方向を表す角度
    thetas = symbols("theta_0 theta_1 theta_2")# モーターの角度(±90deg)
    unit_vectors = [Matrix([cos(angles[i]),sin(angles[i]),0]) for i in range(3)]
    ez = Matrix([0,0,1])
    
    # パラメータ(実数)
    params = [(A,130.0),(B,200.0),(C,400.0),(D,130.0)]
    params.append((angles[0],2.0*np.pi/3.0*0))
    params.append((angles[1],2.0*np.pi/3.0*1))
    params.append((angles[2],2.0*np.pi/3.0*2))
    params.append((x,0))
    params.append((y,0))
    params.append((z,400))
    
    # 各座標の計算
    A_vectors = map(lambda x: A*x,unit_vectors)
    B_vectors = [A_vectors[i] + B*(unit_vectors[i] * cos(thetas[i])-ez*sin(thetas[i]) ) for i in range(3)]
    D_vector = Matrix([x,y,z])
    C_vectors = [D_vector + D * unit_vectors[i] for i in range(3)]
    
[/code]

[![画像の説明をここに入力](https://i.stack.imgur.com/D2Oa9.png)](https://i.stack.imgur.com/D2Oa9.png)


CC BY-SA 4.0
2022-07-21T07:14:02.830
90119
2022-07-21T08:37:59.717
2022-07-21T07:48:49.077
43025
53629
question
python
SympyをJupyterNotebookで使っていますがエラーがでて困ってます。


[map](https://docs.python.org/ja/3/library/functions.html#map) には

> function を、結果を返しながら iterable の全ての要素に適用するイテレータを返します。

とあります。  
イテレーターに対して `A_vectors[i]` はエラー。

`B_vectors`, `C_vectors` と同様に, 以下のようにするとよいでしょう

[code]

    A_vectors = [A*x for x in unit_vectors]
    
[/code]


CC BY-SA 4.0
2022-07-21T07:49:27.220
90121
2022-07-21T07:49:27.220
43025
90119
answer