python中的生成器主要经历三个发展阶段:
- 作为实现迭代器协议的一种方式而出现(yield语句)
- 增添方法,使生成器能够支持协程(增加close,send,throw方法,调整yield语句为yield表达式)
- 为了重构方便增加了yield from 语法
在这篇博文中,主要介绍用于第二点
我有十个手指头
愿她们在键盘上舞蹈
奏出最美的乐章
python中的生成器主要经历三个发展阶段:
在这篇博文中,主要介绍用于第二点
python中的生成器主要经历三个发展阶段:
在这篇博文中,主要介绍用于第一点的生成器
python的matplotlib画图库主要定位是绘画2d的图案,而绘画3d图案只是它的附加功能,所以其处在matplotlib的mpl_toolkits 子库中。主要为用户提供在3d空间中绘画散点图、线图、曲面图等简单图案的能力。
用过python的同学应该知道,python第三方扩展库的安装除了可以使用pip等包管理工具之外,也可以使用源码进行安装:python setup.py install。这个方法是最基础的,使用了python的标准库distutils, 本文主要涉及到python包的一些概念以及使用distutils模块编写setup.py文件。
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的命令行模式中,%代表的是当前文件的名称,同时vim提供了一些后缀用于对文件名称进行修饰,包括了::p :8 :~ :h :t :r :e :s?pat?sub? :gs?pat?sub?
$$
\underbrace{\overbrace{/path/subpath}^{:h}/\overbrace{\underbrace{filename}{r}.\underbrace{extension}{:e}}^{:t}}_{:p}
$$
<C-r>{register}regvim中又一个jumplist, 使用 :jumps 查看当前jumplist
<C-o>,不会改变jumplist<C-i>,不会改变jumplist创建折叠:
删除折叠:
打开关闭折叠:
set fdm=’indent’
将会在当前窗口中按照缩进来创建所有折叠
tab标签页
在一个窗口中可以有多个tab标签页
buffer 缓冲区
每个编辑区域都是一个buffer
在vim中,概念名称+s查看当前概念的列表,+new 产生一个新的对象, +p前一个移动, +n下一个移动
我们常说的傅里叶变换,指的是时域信号经过傅里叶变换得到的频域信号是连续的,如果说得到的频域信号是离散的话,一般会在傅里叶变换前面加上一个’离散’的形容词,而离散时间傅里叶变换呢,则是指时域信号是离散的。
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},…
$$
的内积。