首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确索引时间(IndexError问题)?

如何正确索引时间(IndexError问题)?
EN

Stack Overflow用户
提问于 2021-08-15 07:38:47
回答 1查看 30关注 0票数 0

我目前正在开发一个程序(为了简单起见,对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

然后是导致问题的函数:

代码语言:javascript
复制
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)以及整数或布尔数组才是有效的索引

但是我在网上知道我不能用浮点数来索引数组,但问题是我后来在其他函数中调用了这个函数,因为我需要计算出的值。

所以我想知道有没有一种方法来索引时间,或者我是否需要使用另一种方法?我已经考虑过规范化时间数组,但我不确定如何做到这一点。

EN

回答 1

Stack Overflow用户

发布于 2021-08-15 09:13:15

您正在循环中更改np.linspace对象。首先,我将按如下方式更改您的代码:

代码语言:javascript
复制
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是一个整数!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68789583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档