【问题标题】:Python iteration with array带数组的 Python 迭代
【发布时间】:2012-02-08 17:47:17
【问题描述】:

我想这是一个简单的问题,我正在做简单的迭代,并希望将数据保存在数据数组中,以便我可以简单地绘制它。

tr = 25 #sec
fr = 50 #Hz
dt = 0.002 #2ms
df = fr*(dt/tr)
i=0;
f = 0
data = 0

while(f<50):
    i=i+1
    f = ramp(fr,f,df)
    data[i] = f

plot(data)  

如何正确定义数据数组?如何将结果保存到数组中?

【问题讨论】:

    标签: python arrays plot iteration


    【解决方案1】:

    一种可能性:

    data = []
    
    while(f<50):
        f = ramp(fr,f,df)
        data.append(f)
    

    这里不再需要i

    【讨论】:

      【解决方案2】:

      你可以像这样初始化一个列表:

      data=[]
      

      那么你可以像这样添加数据:

      data.append(f)
      

      【讨论】:

      • 我得到:SyntaxError: can't assign to function call
      • @Pepe:你不能从这些命令中得到那个错误。如果您尝试了类似data.append(i) = f 的方法,您只会收到该消息。您可能想使用类似 aix 的 data.append(f)
      • @NedBatchelder 显然 OP 不熟悉 python,所以这就是我使用“数组”这个词的原因。标记为不具建设性
      • @Pepe 抱歉,@DSM 说您应该使用 data.append(f)
      • @pacofvf:既然换了字,我收回我的-1!
      【解决方案3】:

      对于绘图matplotlib 是一个不错的选择并且易于安装和使用。

      import pylab
      
      pylab.plot(data)
      pylab.show()
      

      【讨论】:

        【解决方案4】:

        他需要从集合中的 1 开始的 "i" b/c。为了让您的代码正常工作,请使用:

        data = {} # this is dictionary and not list
        

        【讨论】:

        • OP 询问如何设置数组,这里不涉及字典。 data[i] = f 将是一种可接受的索引数据数组的方法,如果它已使用 data=[0.0]*1000 之类的东西进行初始化。
        猜你喜欢
        • 2020-03-29
        • 1970-01-01
        • 1970-01-01
        • 2014-07-11
        • 1970-01-01
        • 1970-01-01
        • 2014-05-15
        • 1970-01-01
        • 2018-03-23
        相关资源
        最近更新 更多