我目前正在开发一个程序(为了简单起见,对RAM进行电模拟),该程序需要t(时间)的两个函数,然后在代码的其余部分中重用这两个函数。
我遇到的问题是,我需要返回给定时间(例如0.9秒)的计算电压的值。电压本身是基于一个简单的数学公式进行计算的,该公式应用于我使用signal.sawtooth创建的张力坡道。当然,渐变依赖于我使用linspace创建的时间数组。
temps = np.linspace(0, 3, 100)
Vrampe=1.6*signal.sawtooth( 2*np.pi*freq*temps,0.5) #这里我创建了张力坡道,频率设置为1/3
然后是导致问题的函数:
def Vox(t):
calcul_vox=np.linspace(0,3,100)
for i in range(len(calcul_vox)):
calcul_vox[i]=(Vrampe[i]/((1+R*Gon*P)*d)) #R=300Ohms, Gon=0.00085 Siemens, P=1, d=4.5-10^-10
return calcul_vox[t] #here I don't know how to index the time它会给我一个错误:
IndexError:只有整数、切片(:)、省略号(...)、numpy.newaxis (None)以及整数或布尔数组才是有效的索引
但是我在网上知道我不能用浮点数来索引数组,但问题是我后来在其他函数中调用了这个函数,因为我需要计算出的值。
所以我想知道有没有一种方法来索引时间,或者我是否需要使用另一种方法?我已经考虑过规范化时间数组,但我不确定如何做到这一点。
发布于 2021-08-15 09:13:15
您正在循环中更改np.linspace对象。首先,我将按如下方式更改您的代码:
def Vox(t):
calcul_vox = []
for i in range(len(np.linspace(0, 3, 100)):
# R=300Ohms, Gon=0.00085 Siemens, P=1, d=4.5-10^-10
calcul_vox.append(Vrampe[i]/((1+R*Gon*P)*d))
# here I don't know how to index the time
return calcul_vox[t] 这里我假设t是一个整数!
https://stackoverflow.com/questions/68789583
复制相似问题