- 博客(48)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 Misplaced \noalign. \hline 的解决方法
在使用latex跨栏排版公式的时候,把公式放在页面底端,公式上方画一条横线。用了如下的命令:\begin{figure*}[!b] \hline \begin{equation} a=b+c \end{equation}\end{figure*}结果报错:Misplaced \noalign. \hline 原因是:\hline只能用在表格环境总,且前面需要有明确的换行符 \\ 。经过查询资料,发现,这里应该用的是\hrule 或 \hrulefill替换后,便能正常运行.
2020-08-03 11:56:21
7018
原创 傅里叶变换中的特征函数以及一些冲激函数的性质
傅里叶变换中的特征函数以及一些冲激函数的性质前言正文附录1前言这是自己的通过一些困惑,查了资料,然后整理的。数学表达上可能不完备,主要是记录一个思路。正文傅里叶变换相当于把信号映射到exp(jωt)\exp(j \omega t)exp(jωt)函数撑起来的空间中。或许这么表达不是特别准确,但是,我是这么理解的:对于一个周期函数f(t)f(t)f(t)来说,它可以认为是由许许多多exp...
2020-04-28 21:02:28
7431
1
原创 spyder 中 写TensorFlow程序,如何restart kernel
今天使用Spyder编写TensorFlow的程序,想尝试使用tensorboard绘图。可是第二次运行,总会出现重复的图。在网上查询后,发现需要重启kernel。我在网上看到有人说在Spyder上方的菜单栏——Consoles——restart kernel。但是我找了半天没发现restart kernel。最后找到了,如下图所示。每次运行新的程序之前点一下就可以。...
2019-10-05 20:20:22
7297
1
转载 (转载)numpy和tensorflow中的关于参数axis的正确理解
原文链接https://www.jianshu.com/p/de214abd6ee9我在学习过程中,对np.max的参数axis不理解。查了资料后,发现上文作者总结的很好,因此转载一下。上文作者的博文中的关键点,我通过截图的方式保存在我的博文中,以便查阅。特别感谢原作者!...
2019-09-12 17:04:48
255
原创 使用python/numpy实现im2col的学习心得
使用python/numpy实现im2col的学习心得背景书上的程序分析首先是:其次:写在最后背景最近在看深度学习的东西。使用的参考书是《深度学习入门——基于python的理论与实现》。在看到7.4时,里面引入了一个im2col的函数,从而方便讲不断循环进行地相乘相加操作变成矩阵的运算,通过空间资源换取时间效率。为什么要这么操作和操作以后col矩阵的样子比较好理解。由于对python和num...
2019-09-11 22:36:27
3772
6
原创 C++实现单例模式(包括采用C++11中的智能指针)
对于设计模式来说,以前只是看过基础的理论,很多都没有实现和使用过。这段时间看到了别人C++代码中使用了单例模式,发现了很多新的东西,特此总结记录一下。说话比较啰嗦,希望由浅入深,帮助大家理解! 单例模式,顾名思义,即一个类只有一个实例对象。C++一般的方法是将构造函数、拷贝构造函数以及赋值操作符函数声明为private级别,从而阻止用户实例化一个类。那么,如何才能获得该类的对象呢?这时,
2018-02-05 23:24:58
26741
27
原创 完整的m序列序列生成函数和调用
上午写的m序列的产生方法(点这里),下午我又把调用方法简单化了一下,把所有的代码贴上来,供大家参考。mseq.m生成m序列的主文件,调用的时候直接用生成系数的二进制或者八进制都行。function [seq]=mseq(coef)%==========================================================================% 此函数用来生成
2017-10-03 17:25:47
11661
3
原创 基于MATLAB的m序列产生函数及其调用方法
m序列的产生函数m序列的定义m序列是由n级线性移位寄存器产生的周期为P=2n−1P=2^n-1的码序列,是最长线性移位寄存器序列的简称。关于m序列的基本生成原理网上介绍很多了,其主要步骤就是寄存器的移位和异或运算。即:特定位置寄存器(由反馈系数决定)的值取出来进行异或运算(也就是或者全部相加后模2的运算),寄存器中的值往输出端移位,最后一位输出,第一个寄存器放刚才异或运算中得到的值。m序列生成函数的
2017-10-03 09:32:25
58159
22
原创 python3实现《机器学习实战》遇到的问题:range函数
最近在看学习《机器学习实战》这本书。这本书上用的python2的语法,和python3的语法不太一样。由于本人python小白,看了python3的语法,准备自己实现一下代码,遇到了一些问题,故开贴记录一下。书上P82页。书上给出的dataIndex=range(m)然后循环最后一句是del(dataIndex[randIndex])python3中这样报错了。结果发现原来
2017-05-24 09:19:16
2276
原创 Qt5中qapplication no such file or directory
最近开始学Qt,对照着霍亚飞的《Qt Creator 快速入门》第二版,里面用的是Qt4,但是我直接装了qt opensource后发现时Qt5,就在Qt5的环境上学习。在第二章2.3节,自己编写一个main函数时运行出现qapplication no such file or directory的错误。查了后发现解决办法如下:在项目文件.pro中加入“QT += widgets”这是
2017-04-11 11:55:11
1200
原创 word中插入高分辨率图片,并且保存为PDF图片仍然高清的方法
最近一直在忙着写论文,很久没有更新博客了。今天遇到了一个问题,在论文中插入图片,然后保存成PDF就不清晰了,怎么办?现在觉得找到了一个还不错的方法,和大家分享一下。 平时在撰写小论文的时候,直接使用matlab或者origin画图。每次直接copy figure,然后在word中粘贴,这种方法生成出来的图肯定是矢量的,转换为PDF后不管怎么放大都能很好的显示。但是平时的图都是二维的,数据
2017-03-16 22:32:08
91676
6
原创 C++实现基数排序(radix sort)
在weiss的书中,推导了基于比较的排序算法的一般下界为Nlog(N)。但是一些排序不基于比较的可以达到线性时间,称为线性时间排序(Linear-Time Sort),比如桶排序(Bucket Sort)和基数排序(Radix Sort)。桶排序比较简单,基数排序相当于通过循环进行了多次桶排序。基数排序的原理可以参考这篇博客。它在数据量有限制(比如知道最大的数是多少,知道总共最多有多少种元素个数)
2017-01-23 21:44:44
4783
1
原创 c++实现快速选择算法
在给定的一串序列中,选择出第k大/小的元素。根据快速排序算法,给出一种解决方案,优点就是只对局部的一部分排序。相比与快速排序算法,快速选择是进行一次递归调用。平均时间为O(N)。程序如下,给出了快速排序算法的结果进行对比:#include#include#include#include#include#includeusing namespace std;/** 快速
2017-01-17 18:20:06
3183
原创 使用C++实现快速排序QuickSort
参考了weiss的《数据结构与算法分析》的C++描述第三版。快速排序原理其实很简单,是一个递归的过程。首先确定一个枢纽元,然后把大于枢纽元的元素放在左边,把小于枢纽元的元素放在右边。然后再对左右两边的子序列不断的重复这个操作(确定枢纽元,然后把大小元素归类),直到子序列中的元素为0个或1个的时候结束。需要注意的两个地方:第一个是枢纽元的选取。最好不要直接选择序列的第一个元素作为枢纽元,因为
2017-01-17 17:50:35
1902
原创 VS2013中使用MFC的时候添加启动画面
在学《VC++深入详解》这本书的时候,作者使用的是VC++6.0,然而我用的VS2013,很多地方都有了变化。在9.8启动画面中,有很大的不同。百度之后,参考了网上一写代码(参考1,参考2),整理如下:首先要使用类向导,创建一个MFC类CSplashWnd,基类是CWnd。然后自己找一张Bmp放在工程的res文件夹下,并在VS->资源视图->点击右键,添加资源,选择bitmap,令其I
2017-01-12 11:56:14
5040
原创 孙鑫VC++第九章中9.6进度栏编程中采用的用户自定义消息在VS2013中需要更新的地方
在VS2013中,按照书上写的定义消息,声明消息响应函数,关联消息和相应函数的步骤无法通过编译,错误为““static_cast”: 无法从“void (__thiscall CMainFrame::* )(void)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)””。网上查找资料后发现从VS2005以后就有这个问题了,原因是VS2005之后
2017-01-11 17:40:10
750
原创 C++实现归并排序(使用循环实现)
在上一篇文章中实现了递归方法的归并排序。归并排序时间效率很好,虽然使用递归的方法实现很简单易读,但是容易造成空间性能上的损耗(反复的函数调用引起)。因此,有采用循环的方式实现归排序。给出了两种写法,一种是我自己写的(第一种),一种是weiss书上的课后习题的参考答案(第二种),思想是一样的,第二种明显比第一种写法简单很多。
2017-01-10 15:38:44
2809
原创 C++实现归并排序Mergesort(使用递归的方法)
归并排序的最坏运行时间为O(NlogN)O(N\log N)。它的思想是把两个有序的子序列,通过一次遍历,合并且有序的放在第三个序列中。显然合并两个已排序的表的时间是线性的,最多进行N−1N-1次比较,其中N是元素的总个数。对总的运行时间进行推导如下: 假设N是2的幂次,从而每次总能分裂成两个相等的子列。对于N=1N=1的子列,归并排序的时间为常数,我们记为1,那么我们可以得到如下的递推关系(参考
2017-01-10 11:57:42
7567
转载 优快云-markdown编辑器语法——字体、字号与颜色
转载至testcs_dn(微wx笑)的优快云-markdown编辑器语法——字体、字号与颜色写的非常好,留着学习了,感谢原作者的辛苦整理!目录(?)[-]字体字号与颜色呈现效果颜色名列表 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过类似HTML的标记语法,它可以使普通文本内容具有一定的格式。但是它本身是不支持修改字体、字号与
2017-01-09 20:18:37
631
原创 C++实现堆排序并记录编程中遇到的一个bug(不要对无符号整形数在--的循环中采用>=0作为结束条件)
通过二叉堆的堆序性质,就能通过堆进行排序。对于大顶堆,其树根为整个堆的最大值,对于小顶堆,其树根为整个堆的对小值。因此通过不断的获得堆顶,然后把堆最后一个元素放在堆顶,并重新维持堆序,反复如此,则获得的序列是有序的。建堆的时间花费大约为O(N)O(N),每次执行取堆顶的操作(deleteMin或者deleteMax)花费时间为O(logN)O(\log N)。因此总的运行时间为O(NlogN)O(N
2017-01-09 20:05:22
701
原创 C++实现谢尔排序(希尔排序)(shell sort)
谢尔排序和插入排序还是有类似的,可以说插入排序是谢尔排序中必经的一步,或者说是特殊的一种情况。因为谢尔排序需要使用一个增量序列hkh_k, k=1,2,3,...,tk=1,2,3,...,t,其中h1=1h_1=1。然后会根据不同的hkh_k,进行排序,每次排序的方式和插入排序相似,但是间隔为hkh_k,因此当k=1k=1的时候,便是插入排序了。对谢尔排序,需要从hth_t开始,反复执行类似的操作
2017-01-08 21:27:33
1355
原创 C++实现插入排序
最近学习到了插入排序。它不同于冒泡排序的地方,冒泡排序在每一趟中,一直在比较相邻的两个元素,有逆序对就交换,一次交换次数很多。然而插入排序是在第P趟时,前P个元素都是有序的,然后在第P趟时是给元素P+1找到合适的合适的位置,直接插入,交换次数少。两个相似的地方,但是时间效率来说,插入排序要好一些,特别是在待排序列比较有序的情况下,及逆序对少的情况下。但是对于冒泡,选择,插入这些方法,平均的时间都是
2017-01-08 20:49:23
1753
原创 使用copy函数输出vector中的内容
学习了一种快速输出vector到输出流的方法(当然这个输出流不仅仅是标准输出cout,还可以是其他的文件流)。首先要包含两个头文件,(这个头文件中有copy函数)以及(这个里面有ostream_iterator类模板)然后假设待输出的vector为 vector vec;输出语句为:copy(v.cbegin(), v.cend(), ostream_iterator(cout,
2017-01-08 20:28:47
4581
原创 如何解决VS警告warning C4244: “参数”: 从“time_t”转换到“unsigned int”,可能丢失数据
今天在使用随机数的时候,使用时间做种子,结果提示warning C4244: “参数”: 从“time_t”转换到“unsigned int”,可能丢失数据。原来VS中的time_t是64位的,然而default_random_engine需要32位的“unsigned int”,因此需要强制转换,比如default_random_engine e(static_cast(time(0)));。
2016-12-26 16:30:24
20316
原创 使用C++实现二叉堆
二叉堆可以用来实现优先队列。二叉堆是一棵完全二叉树,除了叶子节点那一层,其他的层都是满的,叶子节点那一层是从左往右依次存放的,因此它们的父子元素的索引有数学公式可以参考,对于节点i来说,它的左儿子是2i,右儿子是2i+1,它的父亲节点是i/2向下取整,因此,在其内部我们可以通过数组来实现元素的存储,从而不需要链式结构,可以节约存储空间,提高访问速度(但是如果有合并操作,则会很慢,此时使用链式结构是
2016-12-26 16:21:46
1632
原创 读《石头剪刀布》总结与感想
这本书是威廉·庞德斯通著,闾佳译,分为两个部分。第一个部分讲得是一般性预测 (一阶预测),我觉得主要讲的是什么是随机的,怎样判断一些东西(比如一串数字)是否是随机出现的。第二部分讲的是对预测的预测,指的是对别人做的预测进行预测。在第一部分中,让我印象深刻的是写出一长串没有侧重或者没有关系的数字是超出人类能力范围的,这是因为人越是不想被猜中,越是容易被猜中,因为每当人们要作出任意的、随机
2016-12-23 11:11:09
1711
原创 关于C++类成员访问级别(public,protected,private)与继承的形式(public, private)
最近在看effective C++,看到第六部分——继承与面向对象设计,对类成员访问级别(public,protected,private)与继承的形式(public, private)的有时候会有点迷糊,这里理清一下思路。我觉得首先要弄清楚,类的定义和类的使用。简单来说,类的定义就是设计类里面应该有什么成员函数,什么数据,以及成员函数的实现。而类的使用是通过定义好的类来产生对象,
2016-12-14 11:17:51
2195
原创 使用C++实现AVL树模板
今天练习编写了一下AVL树。参考了Weiss的数据结构与算法C++描述版。上一个实现的一个一般的二叉搜索树,在使用的过程中可能会慢慢变得不平衡,这样很可能会降低查找、插入等等的效率,因此我们需要使用算法来实现树的平衡。AVL树是一种比较经典的平衡二叉搜索树,它规定每个节点的左子树和右子树的高度差最多为1,默认空树的高度为-1,这样能保证树的深度为O(logN),而且除了遍历,赋值,基本上所有树的操作都可以以时间O(logN)执行(当然插入和删除后因为要重新平衡树,可能时间会长于O(logN))。(Ps,上面
2016-12-13 22:32:51
6053
1
原创 读《必然》的总结与感悟
前段时从图书馆借了《必然》(《The inevitable》),这是凯文凯利(KK)三部曲之一(其它两部是《失控》和科技想要什么),其中主要内容是对未来的展望。对未来描述的书很多,前段时间读的《奇点临近》也算是一本。但是这两者区别很大,《必然》主要是从现在预言在未来10~30年内人类生活会有什么样的变化,科技如何融入在我们生活之中,而且KK的风格感觉很像碎碎念。《奇点临近》是纵观进化历史的发展,总
2016-12-11 19:49:30
3099
1
原创 编写了一个计算器小程序,作为栈的练习
一个计算器小程序的实现。用户可以及时输入,然后将用户输入的表达式(中缀表达式)转换成后缀表达式,然后计算。
2016-12-07 19:53:07
2871
原创 linux 下文件操作和内存映射的一个简单例子
这个例子来自《linux程序设计》,对程序进行了一些注释。具体如下:#include#include#include // 包含了关于内存映射的一些函数#include#includetypedef struct { int integer; char string[24];} RECORD;// 定义结构体变量的数目#define NRECORDS (10
2016-12-05 09:55:10
3002
原创 Linux 下显示目录内容的c语言程序
最近打算学学linux,看了看基础的介绍感觉不明所以,目前在看《Linux程序设计》,看到第三章一个显示目录的程序,感觉C语言和linux简直是天作之合,C语言提供很多底层的函数和一些库函数,可以进行很多方便操作。再和SHELL配合起来对linux编程,确实很爽呀。
2016-12-03 21:02:04
1097
原创 关于《奇点临近》读后的总结与感想
《奇点临近》这本书是当时看纪录片——《互联网时代》中提及的一本书,关于人工智能的。当时很好奇,于是在2014年双十一从当当购入,没想到一直搁置箱底,不曾问津。今年十一,从北京回来,打算花一个月时间读完此书,以下便是一些总结和感想。
2016-12-01 16:27:09
12386
原创 使用C++实现双向链表List
参考教程《数据结构与算法分析 C++描述 》第三版和第四版这次写的过程中,发现的两个新的 问题:第一:自己定义的数据结构UDT如果需要使用C++11中的范围for语句,需要定义begin和end函数。如果遍历的是常量对象,则要有相应的常量对象可用的begin和end函数。声明形式如下:iterator begin();const_iterator begin() const;
2016-11-29 22:29:09
1361
原创 关于板块“看过的一些书的读后感与总结”
其实一直都很羡慕涉猎广泛的人,与之交往,能学到很多新知识,了解到很多新观点。作为一个曾经只想学习专业知识(奈何学的也不扎实),很少兼顾其他学科的人,感到没有广博知识的沉淀,犹如飘飘然的羽毛,随风飘荡,无法找到自己的落点。归根到底,没有广泛阅读,思考甚少,为之惶恐。于是,前段时间,就决定开始博览之旅,也期望在毕业前好好利用一下图书馆,逛逛没有去过的区域,借几本没有读过的书,能有个机会,坐
2016-11-29 15:02:54
449
原创 关于linux下使用grep和egrep中单引号‘’、双引号“”、小括号()和大括号{}的一些问题
最近在linux下使用grep和egrep发现了一些问题。以前一直以为egrep包含了grep,因此grep中采用的格式,在egrep中能得到相同的结果。其实这个想法是不对的。
2016-11-21 11:47:27
24082
原创 关于在g++编译C++过程中调用移动构造函数
最近在学习C++,写了段程序,g++下一直不能调用移动构造函数,换到VS2013下就没有问题,原来是需要使用g++编译的时候使用 -fno-elide-constructors 选项,而且开启c++11标准,完整命令如下:g++ -o demo -std=c++11 -fno-elide-constructors demo.cppdemo.cpp如下:#include#inc
2016-11-15 17:13:45
1379
关于C++中重载赋值操作符(=)返回引用的问题
2016-11-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人