Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gnuplot 用不同采样率绘制两个函数_Gnuplot - Fatal编程技术网

Gnuplot 用不同采样率绘制两个函数

Gnuplot 用不同采样率绘制两个函数,gnuplot,Gnuplot,我想画两个函数:sin(x)和一个采样和量化的sin(x)。剧本很简单 set xtic 1 set ytic 1 f1(x) = sin(x/16*2*pi)*8 round(x) = x - floor(x) < 0.5 ? floor(x) : ceil(x) plot [0:16] [-8.5:8.5] f1(x) with lines, round(f1(x)) with steps lt 2 几乎可以,但是sin(x)看起来不够平滑。有什么办法使它更好吗?将f1()的变量四

我想画两个函数:sin(x)和一个采样和量化的sin(x)。剧本很简单

set xtic 1
set ytic 1
f1(x) = sin(x/16*2*pi)*8
round(x) = x - floor(x) < 0.5 ? floor(x) : ceil(x)
plot [0:16] [-8.5:8.5] f1(x) with lines,  round(f1(x)) with steps lt 2

几乎可以,但是sin(x)看起来不够平滑。有什么办法使它更好吗?

f1()
的变量四舍五入,而不是
f1()
本身,并使用
floor()
而不是
Round()

此外,设置大量样本以保持量化图正确对齐:

set samples 1000
如果使用
round()
而不是
floor
量化步骤是“0.5步”(0.5到1.5,1.5到2.5等),而不是“1步”


尝试
用直线绘制[0:16][8.5:8.5]f1(x),用步骤lt 2绘制f1(圆(x)+0.0
就是这样。确切地说:取整(f1(floor(x)+0.0)),f1(floor(x)+0.0)只会使其采样,取整是使其量化(本例中为4位量化器)。谢谢
plot [0:16] [-8.5:8.5] f1(x) with lines,  f1(floor(x)+0.0) with steps lt 2
set samples 1000