Gnuplot 绘制 Visual Studio C/C++ 输出的波形图
Gnuplot 是一款强大的绘图工具,我在学习C语言时,想要编写一套不规则波形(正弦、三角波、梯形图等等)的C语言函数,为了验证函数的输出是否满足我预期的要求,就用到了Gnuplot来绘制波形。
以正弦波为例:
正弦波的代码如下:
//sin_wave
#include<stdio.h>
#include<math.h>
#define pi 3.1415926
int main()
{
double t, s;
for (int i = 0; i < 4000; i++)
{
t = i / 1000.0;
s = sin(2 * pi * 2 * t);// 设定频率为 x Hz
printf("%e\t%e\n", t, s);
}
}
C语言的编译环境为 Visual Studio 2017
程序写好之后,在“调试”对话框的下拉界面选择“开始执行(不调试)(H)”选项,运行程序。
运行结果如下:
此时打开该项目的存储位置,在 Debug 文件夹下进行绘图操作指令:
首先打开运行窗口(快捷键 win+R),在运行窗口输入cmd:
点击确定,打开如下界面:
在光标处输入程序项目存储位置所在的磁盘,我的放在D盘,输入D:,点击Enter,如下:
在光标处输入 cd 然后点击空格键 ,接着输入程序编译之后“Project1.exe”文件所在的路径,可以直接复制粘贴过去,然后电机Enter.
注:Project1.exe是我懒省事的默认命名。
在光标处输入 gnuplot,点击Enter,打开gnuplot 画图命令:
在光标处输入
plot [0:5] [-1:1] "<Project1.exe" u 1:2 w l
按下Enter,就可得到程序输出的波形:
我在操作中遇到的问题:
如果在程序中出现下面的情况:在printf的\t后面多加了一个逗号
//正弦信号
#include<stdio.h>
#include<math.h>
#define pi 3.1415926
int main()
{
double t, s;
for (int i = 0; i < 4000; i++)
{
t = i / 1000.0;
s = sin(2 * pi * 2 * t);// 设定频率为 x Hz
printf("%e\t,%e\n", t, s);//在printf的\t后面多加了一个逗号
}
}
调试之后:
然后再执行画图命令的话,会出现下面的错误:
提示文件没有有效的数据点,然后跳过了,画不出图来
可以确定时“逗号”导致的,把逗号删掉,再编译——绘制就可以了。
初次分享,大家多多交流,祝你变得更强!!!