数据处理(3.0)-python 动态新建变量与动态调用动态变量

为了实现全自动数据处理,但数据的维度又在不断的改变,为了不用每次操心修改代码,会使用到动态新建变量和动态调用动态变量,但网上的资料很含糊,或者不好用,被逼无奈写了本篇文章

一、 动态创建动态变量

1. locals()

调用该函数

names = locals()

新建变量

names['ReImf' + str(0)] = 2

在这之后,就可以直接使用 ReImf0 或者变量,这里我们可以将 0 这个数变成一个变量值,来动态新建变量

for i in range(len(imfs)):
      # print(i) 0 12
      # 动态生成变量
      names['ReImf' + str(i)] = imfs[i]

2. exec()

新建变量

exec("ReImf{} = 2".format(0))

循环新建变量

for i in len_Re:
    exec("ReImf{} = 2".format(i))

二、 动态调用动态变量

首先我们先理解一下 exec  ,

exec 的意思我认为是把 exec(" ") ,双引号中间的内容当作代码来运行

这样的话,我们就很容易理解该怎么动态的调用我们的变量

        # 返回瞬时频率,计算每个 imf 对应的瞬时频率,并确定时间范围
        t = np.arange(0,length)
        # 动态方法
        for i in len_Re:
            # print("i:",i)

            exec("names['instf'+str(i)],names['timestamps'+str(i)] =tftb.processing.inst_freq(ReImf{}  ,t)".format(i))



        # 动态拼接所有瞬时频率
        for i in len_Re:
            # 0 12
            if i == 0 or i == 1:
                result = np.array([instf0, instf1])
            else:
                result = np.vstack([result, names.get('instf' + str(i))])

从上门我们可以看出

定义新的动态变量使用 locals(),调用的话使用 exec ,需要主要得有以下一点:

exec 要包含整句,包含names 部分,且不能出现空格导致缩进问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
时频分析工具箱中提供了计算各种线性时频表示和双线性时频分布的函数, 本帖主要列出时频分析工具箱函数简介,以号召大家就时频分析应用展开相关讨论。 一、信号产生函数: amexpo1s 单边指数幅值调制信号 amexpo2s 双边指数幅值调制信号 amgauss 高斯幅值调制信号 amrect 矩形幅值调制信号 amtriang 三角形幅值调制信号 fmconst 定频调制信号 fmhyp 双曲线频率调制信号 fmlin 线性频率调制信号 fmodany 任意频率调制信号 fmpar 抛物线频率调制信号 fmpower 幂指数频率调制信号 fmsin 正弦频率调制信号 gdpower 能量律群延迟信号 altes 时域Altes信号 anaask 幅值键移信号 anabpsk 二进制相位键移信号 anafsk 频率键移信号 anapulse 单位脉冲信号的解析投影 anaqpsk 四进制相位键移信号 anasing Lipscjitz 奇异性 anaste 单位阶跃信号的解析投影 atoms 基本高斯元的线性组合 dopnoise 复多普勒任意信号 doppler 复多普勒信号 klauder 时域Klauder小波 mexhat 时域墨西哥帽小波 二、噪声产生函数 noiseecg 解析复高斯噪声 noiseecu 解析复单位高斯噪声 tfrgabor Gabor表示 tfrstft 短时傅立叶变换 ifestar2 使用AR(2)模型的瞬时频率估计 instfreq 瞬时频率估计 sqrpdlay 群延迟估计 三、模糊函数 ambifunb 窄带模糊函数 ambifuwb 宽带模糊函数 四、Affine类双核线性时频处理函数 tfrbert 单式Bertrand分布 tfrdfla D-Flandrin分布 tfrscalo 尺度图 tfrspaw 平滑伪Affine类Wigner分布 tfrunter Unterberger分布 五、Cohen类双核线性时频处理函数 tfrbj Born-Jordan分布 tfrbud Butterworth分布 tfrcw Choi-Williams分布 tfrgrd 归一化的矩形分布 tfrmh Margenau-Hill分布 tfrmhs Margenau-Hill频谱分布 tfrmmce 谱图的最小平均互熵组合 tfrpage Page分布 tfrwv 伪Wigner-Ville分布 tfrri Rihaczek分布 tfrridb 降低交叉项的分布(Bessel窗) tfrridbn 降低交叉项的分布(二项式窗) tfrridh 降低交叉项的分布(汉宁窗) tfrridt 降低交叉项的分布(三角窗) tfrsp 谱图分布 tfrspwv 平滑伪Wigner-Ville分布 tfrwv Wigner-Ville分布 tfrzam Zhao-Atlas-Marks分布 六、其他处理函数: friedman 瞬时频率密度 htl 图像直线检测中的Hough变换 margtfr 时频表示的能量 momftfr 时频表示的频率矩 momttfr 时频表示的时间矩 renyi Renyi信息度量 ridges 波峰提取 plotifl 绘制归一化的瞬时频率规律 tfrparam 返回用于显示时频表示的参数 tfrqview 时频表示的快速可视化 tfrsave 保存时频表示的参数 tfrview 时频表示的可视化

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值