>source

이 문제를 해결하는 방법, 이 스니펫을 실행할 때 이 오류가 발생하고 jupyter에서 가져오기 matplotlib.pyplot을 plt로 플롯할 수 없습니다. 수입 수학 numpy를 np로 가져오기

g= 9.8 L1= np.arange (10, 201) 인쇄(L1)

범위(L1)의 t: 길이= L1/100 t= (math.sqrt(길이/9.8)) * 2* 3.14 인쇄 (t) plt.plot(길이, t)

TypeError: 정수 스칼라 배열만 스칼라 인덱스로 변환할 수 있습니다.

어디에 오류가 있습니까? code 형식을 수정해야 하지만 L1이 배열인 것 같습니다. 배열을 범위에 대한 인수로 사용할 수 없습니다. Math.sqrt를 사용할 때도 주의하십시오. 그 역시 배열이 아닌 단일 숫자인 스칼라만 사용합니다. 이와 같은 질문을 할 때는 code의 형식을 올바르게 지정하고 전체 오류 역추적을 표시하세요.

hpaulj2022-02-15 05:24:13
  • 답변 # 1

    이 code를 작성했지만 유형 오류 code가 있습니다.

    import matplotlib.pyplot as plt
    import math
    import numpy as np
    g= 9.8
    L1= np.arange (10, 201)
    print (L1)
    for t in L1:
        Length= L1/100
        t= (math.sqrt(Length/g)) * 2* 3.14
        print (t)
        plt.plot (Length, t)
    

    아래 오류가 발생했습니다.

    TypeError                                 Traceback (most recent call last)
    <ipython-input-38-801844ac894c> in <module>()
          9 for t in L1:
         10     Length= L1/100
    ---> 11     t= (math.sqrt(Length/9.8)) * 2* 3.14
         12     print (t)
         13     plt.plot (Length, t)
    TypeError: only size-1 arrays can be converted to Python scalars
    

    고칠 사람을 도와줄 수 있습니까? 또한 나는 이것을 다음과 같이 변경했습니다.

      import matplotlib.pyplot as plt
    import math
    import numpy as np
    g= 9.8
    L1= np.arange (10, 201)
    print (L1)
    for t in L1:
        Length= L1/100
        m= (math.sqrt(Length/g)) * 2* 3.14
        print (m)
        plt.plot (Length, m)
    

    하지만 난 고칠 수 없어!!! 이 오류가 발생했습니다.

    TypeError                                 Traceback (most recent call last)
    <ipython-input-40-9b2fc69d500a> in <module>()
          9 for t in L1:
         10     Length= L1/100
    ---> 11     m= (math.sqrt(Length/g)) * 2* 3.14
         12     print (m)
         13     plt.plot (Length, m)
    TypeError: only size-1 arrays can be converted to Python scalars
    

    그래서 다음과 같이 변경했습니다.

    import matplotlib.pyplot as plt
    import math
    import numpy as np
    g= 9.8
    L1= np.arange (10, 201)
    print (L1)
    for t in l1:
        Length= L1/100
        m= (math.sqrt(Length/g)) * 2* 3.14
        print (m)
        plt.plot (Length, m)
    

    그리고 나는 오류가 없지만 내 플롯은 비어 있습니다 내 문제는: 길이(l)가 주어진 진자(T)의 주기(진자가 앞뒤로 흔들리는 데 걸리는 시간)는 다음과 같이 제공됩니다.

    T= 2π√(l/g) 일정한: g= 중력 가속도(9.8 m/s2)

    변수: l= 진자 스트링의 길이(m)

    줄 길이가 10cm에서 2m인 진자의 길이 대 진자 주기의 플롯을 작성하십시오. 하지만 지금은 빈 음모가 있습니다!!!

    이것은 형식을 변경하지 않고 질문 code를 반복한 것입니다!

    hpaulj2022-02-15 05:24:13

    L1은 배열입니다. 즉, 길이도 하나입니다. 나는 이미 math.sqrt가 배열을 받아들일 수 없다고 말했습니다. 반복 변수는 t이지만 사용하지 않습니다. 좀 더 기초적인 파이썬을 공부해야 한다고 생각합니다. 평범한 파이썬 반복을 사용하는 방법을 모르는 것 같습니다. 훨씬 덜합니다.

    hpaulj2022-02-15 05:24:13
  • 이전 java : mybatis 필드 매핑 순서
  • 다음 람다 식에 매개변수 전달 -Java