没脚的雀

我有十个手指头
愿她们在键盘上舞蹈
奏出最美的乐章


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签
没脚的雀

python的generator理解(2)--对协程概念的支持

发表于 2017-03-25

python中的生成器主要经历三个发展阶段:

  1. 作为实现迭代器协议的一种方式而出现(yield语句)
  2. 增添方法,使生成器能够支持协程(增加close,send,throw方法,调整yield语句为yield表达式)
  3. 为了重构方便增加了yield from 语法

在这篇博文中,主要介绍用于第二点


阅读全文 »
没脚的雀

python的generator理解(1)--实现迭代器协议

发表于 2017-03-25

python中的生成器主要经历三个发展阶段:

  1. 作为实现迭代器协议的一种方式而出现(yield语句)
  2. 增添方法,使生成器能够支持协程(增加close,send,throw方法,调整yield语句为yield表达式)
  3. 为了重构方便增加了yield from 语法

在这篇博文中,主要介绍用于第一点的生成器


阅读全文 »
没脚的雀

Matplotlib的3d绘画

发表于 2017-03-25

matplotlib中绘画3d图案的工具——mplot3d

python的matplotlib画图库主要定位是绘画2d的图案,而绘画3d图案只是它的附加功能,所以其处在matplotlib的mpl_toolkits 子库中。主要为用户提供在3d空间中绘画散点图、线图、曲面图等简单图案的能力。

阅读全文 »
没脚的雀

python模块分发--distutils的使用

发表于 2017-02-14

用过python的同学应该知道,python第三方扩展库的安装除了可以使用pip等包管理工具之外,也可以使用源码进行安装:python setup.py install。这个方法是最基础的,使用了python的标准库distutils, 本文主要涉及到python包的一些概念以及使用distutils模块编写setup.py文件。

阅读全文 »
没脚的雀

python的迭代器

发表于 2017-01-26

迭代器

This document proposes an iteration interface that objects can provide to control the behaviour of ‘for’ loops. Looping is customized by providing a method that produces an iterator object.

–pep234

迭代器不是python与生俱来的概念,而是在pep234中提出来的, 主要用于自定义for语句的逻辑。在迭代器实现之前,python的for语句只能够用在实现了sequence protocol的对象,比如list、string、tuple上, 而pep234之后,for语句的作用对象增加了一个iterators。这样一来只要是实现了iterators 协议的对象都可以用在for语句之中。

阅读全文 »
没脚的雀

vim杂记

发表于 2017-01-25

文件名修饰

在vim的命令行模式中,%代表的是当前文件的名称,同时vim提供了一些后缀用于对文件名称进行修饰,包括了::p :8 :~ :h :t :r :e :s?pat?sub? :gs?pat?sub?

  • :p
    该修饰符必须作为%后的第一个修饰符存在,作用是将当前文件名扩展为绝对路径的文件名。如果文件名是一个路径,将会在后面添加’/‘
  • :8 将文件名转化称为 8.3 短格式的文件名
  • :~ 将文件名中的用户home目录使用 ~ 代替
  • :h 取出路径分隔符号前面的内容
  • :t 取出最后一个文件seperator 后面的内容
  • :r 取出文件名中除了扩展名以及 . 之外的部分
  • :e 取出文件名中最后一个扩展名称
  • :s?pat?sub? 将文件名中第一个符合pat正则表达式的字符串替换称为 sub
  • :gs?pat?sub? 同上, 只是将会替换所有符合pat的字符串

$$
\underbrace{\overbrace{/path/subpath}^{:h}/\overbrace{\underbrace{filename}{r}.\underbrace{extension}{:e}}^{:t}}_{:p}
$$

复制粘贴

  • 在插入模式中,粘贴:<C-r>{register}
  • 查看复制粘贴寄存器: reg

移动

vim中又一个jumplist, 使用 :jumps 查看当前jumplist

  • 跳转至jumplist中的上一个位置: 普通模式下<C-o>,不会改变jumplist
  • 跳转至下一个位置: 普通模式下<C-i>,不会改变jumplist
  • 在mark跳转操作之前使用g不会改变当前 jumplist

代码缩进

  • 创建折叠:

    • normal模式下 使用 zf+{motion} 如当前位置为’{‘ 使用zf% 将会把花括号的内容创建一个折叠
    • visual 模式下, 对选中的行使用zf将会创建折叠
  • 删除折叠:

    • zd : 删除当前光标位置下的折叠, 非递归
    • zD: 删除 当前光标下的折叠, 同时删除改折叠所包含的折叠
    • zE: 删除当前窗口中所有的折叠
  • 打开关闭折叠:

    • 打开: zo, zO (递归:打开当前折叠中包含的所有折叠)
    • 关闭: zc, zC (递归)
  • set fdm=’indent’

    将会在当前窗口中按照缩进来创建所有折叠

几个概念

  • tab标签页

    在一个窗口中可以有多个tab标签页

  • buffer 缓冲区

    每个编辑区域都是一个buffer

在vim中,概念名称+s查看当前概念的列表,+new 产生一个新的对象, +p前一个移动, +n下一个移动

Some Tricks

  • Visual 选中单词, 按下 Shift+K 能够查看帮助, 如: 对python来说,查看文档,对c库来说,查看man中的内容
没脚的雀

傅里叶变换杂记

发表于 2017-01-25

离散傅里叶变换(DFT)与离散时间傅里叶变换(DTFT)

概念阐述

我们常说的傅里叶变换,指的是时域信号经过傅里叶变换得到的频域信号是连续的,如果说得到的频域信号是离散的话,一般会在傅里叶变换前面加上一个’离散’的形容词,而离散时间傅里叶变换呢,则是指时域信号是离散的。

阅读全文 »
没脚的雀

从矩阵分析的角度看待傅里叶变换

发表于 2017-01-25

hi,告诉大家一个普天同庆的消息,我在01-10考《矩阵分析》、01-11考《数字信号处理》,这些天在这两本书里面钻来钻去,整个人都不好了。但是还算是稍有收获,就比如这傅里叶变换跟矩阵分析的关系。本科那会修《信号与系统》的时候,这傅里叶变换怎么看怎么不顺眼。
$$
x[n] = \frac{1}{2 \pi}\int_{2\pi}X(e^{j\omega})e^{j\omega n}d\omega
$$

$$
X(e^{j\omega}) = \sum_ {n = - \infty} ^ {+ \infty }x[n] * e^{j \omega n}
$$

近来的复习让我觉得,傅里叶变换其实就是一个无限维空间中的一个内积操作,傅里叶变换得到的是频域上的一个函数,每一个频率值上的值是时域上信号的与
$$
…,e^{j\omega*(-1)}, 0, e^{j\omega 1},…
$$

的内积。

阅读全文 »
12
WinChua

WinChua

error-oriented debugging
google-oriented coding
girlfriend-oriented keeping

18 日志
6 标签
GitHub
© 2016 - 2019 WinChua
由 Hexo 强力驱动
主题 - NexT.Mist