memcpy和strcpy比较
函数memcpy比函数strcpy速度不会慢:
- 函数memcpy是按照机器的字长来拷贝的,现在主要是4字节;
- strcpy是单个字节拷贝的;
- memcpy函数被优化过;
- strcpy有个限制就是遇到’\0’就结束
Mark:当涉及到的两个对象在内存中如果是相互重叠的,则函数memcpy的执行结果是没有意义的,此时应该使用函数memmove。
gnuplot或许是这个世界上用来分析和可视化数据的最强劲的工具,主要用来绘制2D/3D的数据或者函数图像,但是也包含数学计算、拟合等功能。
gnuplot全名应该读作 “new plot”。
所有的主流 Linux 发行版都包含 gnuplot,因此在 Linux 上安装很简单,比如在Redhat系列输入yum install gnuplot
即可,而Debian系列输入apt install gnuplot
即可。
对于MacOSX系统,可以通过MacPorts和Homebrew来进行安装。
在 Windows 下,可以直接到 gnuplot 在 sourceforge 的下载网页Download下载新版本(选择包含win64的exe文件即可),下载后即可安装使用。
gnuplot是基于命令行的交互式绘图软件。打 一个终端,输入 gnuplot,随着程序启动,会出 现下面的信息:(如果是在 Windows 电脑上,双击 gnuplot.exe 后会自动打 一个命令行窗口)
1 | $ gnuplot |
欢迎信息包括gnuplot的版本,修改日期,版权等信息。
此时就可以开始输入命令绘图了,或者输入quit和exit退出交互环境。
主要参考《Gnuplot In Action》和《使用 gnuplot 科学作图》,请支持正版。
在gnuplot 里面表达数学公式是很简单的,很多与C语言类似,比如
代码如下所示:
1 | gnuplot> print 3+8 |
其中print
命令用于把结果输出到屏幕上。
主要参考《Gnuplot In Action》和《使用 gnuplot 科学作图》,请支持正版。
gnuplot或许是这个世界上用来分析和可视化数据的最强劲的工具。
gnuplot绘制的图形不仅可以自己使用,还可以用于出版和演示。
1 | gnuplot > plot "datafile" using 1:2 with boxes |
在终端输入gnuplot
后,就会进入一个交互环境,在该环境就可以输入命令了。
1 | gnuplot > plot sin(x) with line linetype 3 linewidth 2 |
同时绘制多条曲线
1 | gnuplot > plot sin(x) title 'sin(x)' with line linetype 3 linewidth 2, cos(x) title 'cos(x)' with line linetype 2 linewidth 2 |
主要参考《Gnuplot In Action》和《使用 gnuplot 科学作图》,请支持正版。
gnuplot 默认的x取值范围为[-10,10],对于正弦函数而言,我们比较希望是+-π。
此时可以使用xrange参数来指定。
1 | gnuplot > plot sin(6*x) |
xrange用来指定横坐标的取值范围。
此时我们看到横坐标还是用数字表示,我们希望用π的来表示,如下:
1 | gnuplot> set xtics pi |
此时的坐标我们看到是按照3.1415来显示的,其中xtics表示主刻度,mxtics(minor xtics)表示分刻度,每个主刻度之间分两个刻度显示。
此时我们希望3.1415用π来显示,如下还是使用xtics参数来调整。
1 | gnuplot> set xtics ("-π" -pi, "-π/2" -pi/2.0,"π/2" pi/2.0,"π" pi) |
此时的横坐标轴就比较完美了。
set xtics 命令直接规定了每个刻度的位置和显示的字符。每一个刻度对应三个参数:显示字 符、刻度位置、刻度等级。刻度等级为 0 时表示主刻度,等级为 1 时表示分刻度。对于主刻度 (等级为 0 时),表示等级的参数也可以省略不写。各个刻度的参数之间用逗号隔 。从上面的例 子我们还看出,显示字符可以为空,也就是只标刻度,不显示字符。
然后把纵坐标也修改一下,如下:
1 | gnuplot> set ytics -1,0.5,1 |
本节新增了基本命令:
主要参考《Gnuplot In Action》和《使用 gnuplot 科学作图》,请支持正版。