gpt4 book ai didi

plot - GNU plot - 计算峰数

转载 作者:行者123 更新时间:2023-12-01 11:22:13 25 4
gpt4 key购买 nike

我有一个包含 11 列的非常大的文本文件。由于我无法发布全部数据,我已将文本文件上传到公共(public)存储库并可在以下链接中找到:http://s000.tinyupload.com/?file_id=59483318155908771897

有什么方法可以在 Linux 中使用 GNU plot 来计算峰的数量吗?从上面的文本文件中,我将 1st7th 列绘制为 x 和 y 列,其中峰值是 7th 列的变化和这就是我感兴趣的。例如,将下图中的频率峰值数计算为 10。

这是我正在使用的一个简单的绘图脚本。

set key right top
set xrange [:10]


#show timestamp
set xlabel "time in sec"
set ylabel "Freq"


set title "Testing"
plot "data/freq.csv" using 1:7 title "Freq", \

感谢您的帮助。

最佳答案

Gnuplot 用于绘图和小算术,在信号中查找峰值是一项信号处理任务,您需要像 GNU Octave 这样的工具来完成合理的工作。如果您加载 freq.csv 文件并使用 MinPeakDistance 的合理值对其运行 findpeaks(),您将获得:

Found most peaks

我用来生成上面情节的代码:

y = dlmread('freq.csv', ' ');
[peak_y, peak_x] = findpeaks(y(:,7), "MinPeakDistance", 40);
plot(y(:,1), y(:,7), y(peak_x,1), peak_y, '.r');

根据您的需要,findpeaks() 可能就足够了,请参阅 help findpeaksdemo findpeaks 以了解您可以调整的其他选项。

关于plot - GNU plot - 计算峰数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40785380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com