python - 给定从 0 开始的新时间值列表,有没有办法以秒为单位扩展时间值列表?
问题描述
我有一个 python 程序运行一个连接到一个小板的串行端口。该程序从板接收三个列表:t
、volt
和curr
一旦完成一种方法。我想使用这些值构建三个列表:t_list
、volt_list
和curr_list
。该板连接到一个 iorodeo 恒电位仪,每个方法周期只能运行 25 个周期,因此我需要将它给出的值从t
、volt
和curr
传递到t_list
、volt_list
和curr_list
x 个方法周期以绕过 25 个周期的限制。问题是时间列表t
在每个方法循环的 0.003 秒处重新开始,所以我最终在 final 中得到一个重复的时间列表t_list
。有没有办法把每一个新的t
并让python程序计算一个新列表,该列表从最后一次开始,以总时间结束(以秒为单位)?该列表以秒为单位提供与和列表t
长度相同的时间列表。对于下面的脚本,第一个方法返回一个长度为 250 的列表 t,从 0.003 秒开始,到 0.75 秒结束。每个方法周期都应该相同。curr
volt
这是脚本:
# -*- coding: utf-8 -*-
"""
Created on Sat Sep 18 18:34:59 2021
@author: dallo
"""
from potentiostat import Potentiostat
import sys
import matplotlib.pyplot as plt
from serial import Serial
port = 'COM7'
num_pulse = 25 # Number of pulses (max = 25)
lo_pulse = (10, -1.0)
hi_pulse = (20, -0.1)
num_cycles = 3
dev = Potentiostat(port)
hw_variant = dev.get_hardware_variant()
dev.set_curr_range('1000uA')
dev.set_sample_rate(300)
step_list = []
curr_list = []
volt_list = []
t_list = []
# Add pulses to step list
for i in range(num_pulse):
step_list.append(lo_pulse)
step_list.append(hi_pulse)
# Test name and test parameters
test_name = 'multiStep'
test_param = {
'quietValue' : 0.0,
'quietTime' : 0,
'step' : step_list,
}
for i in range(num_cycles):
volt = []
curr = []
dev.set_param(test_name,test_param)
t,volt,curr = dev.run_test(test_name,display='pbar')
curr_list.extend(curr)
volt_list.extend(volt)
t_list.extend(t)
volt_ax = plt.subplot(2,1,1)
plt.plot(t_list,volt_list)
plt.ylabel('potential (V)')
plt.grid('on')
plt.subplot(2,1,2, sharex=volt_ax)
plt.plot(t_list,curr_list)
plt.ylabel('current (uA)')
plt.xlabel('t (sec)')
plt.grid('on')
plt.show()
解决方案
t_list
您可以尝试通过在具有以下形式的字典中添加来跟踪时间:
tmp_dict = {time_of_the_iteration: t}
这样代码就变成了:
....
from datetime import datetime
....
for i in range(num_cycles):
volt = []
curr = []
dev.set_param(test_name,test_param)
t,volt,curr = dev.run_test(test_name,display='pbar')
curr_list.extend(curr)
volt_list.extend(volt)
actual_time = datetime.now().strftime('%H:%M:%S')
tmp_dict = {actual_time: t}
t_list.extend(tmp_dict)
这样,您每个人都有不同的时间t
。
推荐阅读
- javascript - 如何在反应中在地图上显示来自图像 URl 的图像
- git - 无法配置 git 终端来推送已创建的项目
- html - 如何在 CSS 中创建斜线
- hyperledger-fabric - 来自 getHistoryForKey() 的事务 id 在 Hyperledger Fabric 中始终未定义
- magento2 - magento 2上注册和结帐页面上的电子邮件验证
- python - conda env 变量没有按预期工作
- flask - 对象作为 SQL 文字值是不合法的
- c++ - cpp 中的条件运算符是否评估两个操作数?
- reactjs - 错误:重新渲染过多。React 限制了渲染的数量以防止无限循环。因为 setState
- class - 添加列表