【发布时间】:2020-08-21 02:56:20
【问题描述】:
我有这个代码:
R = float(input("Enter the arc's radius of curvature: "))
H = float(input("Enter the arc's height: "))
import matplotlib.pyplot as plt
import numpy as np
import math
#cc = center of curvature
cc = math.sqrt(R**2 - (H / 2)**2)
x = np.linspace(-5,5,100)
y = math.sqrt(R**2 - (x - cc)**2)
plt.plot(x, y, 'c')
plt.show()
并得到这个错误:
TypeError:只有 size-1 的数组可以转换为 Python 标量
我该如何解决这个问题?
【问题讨论】:
-
为什么? python 标量只是一个数字。一个有 2 个数字的数组可以只转换为一个,可以吗?但是哪条线产生了错误?
math.sqrt仅适用于一个号码。但是x是一个数组,所以R**2-(x-h)**2也是一个数组。这是我对问题线的猜测。阅读math文档。问题行中的测试值!做一些你自己的调试。 -
是 y = 线。
-
@hpaulj:我在使用 polyfit(X,Y,Z,2) 时得到同样的错误,以获得二阶多项式回归。也许问题是指定哪个是因变量?
标签: python numpy matplotlib math