【问题标题】:Feeding data into octave plot from a command-line pipe从命令行管道将数据输入八度图
【发布时间】:2014-04-02 10:28:44
【问题描述】:

我有一个关于以八度音阶实时绘图的问题。这个想法很简单,但不幸的是我在互联网上找不到解决方案。在我的项目中,我使用netcat 对数据进行采样并使用awk 对其进行过滤,例如:

nc 172.16.254.1 23 | awk ' /point/ '

通过这种方式,我每 4-10 毫秒(大约)获得一个新数据点,以及一个时间戳。 现在我想将这些数据传输到八度并实时绘制。有人有什么想法吗?

更新

在我看来

nc 172.16.254.1 23 | awk ' /point/ ' | octave --silent --persist --eval "sample(stdin)"

将数据传送到我的八度脚本sample,它会进行绘图。但是现在仍然存在一个问题:重新绘制速度很慢,并且在对数据进行采样时变慢(我得到了数千个数据点)。我有

function sample(stream)
t = NaN; r = NaN; k = 1;
figure(1)
plot(t,r,'o')
hold on
while(~feof(stream))
     s = fgets(stream);
     t(k) = str2double(s(1:6));
     r(k) = str2double(s(8:11));
     plot(t(k),r(k),'o')
     drawnow()
     k = k + 1;
end

我应该添加/更改什么?

【问题讨论】:

    标签: plot octave


    【解决方案1】:

    经过一番研究,feedgnuplot 似乎满足了我实时绘图的目的:

    nc 172.16.254.1 23 | 
    awk ' /point/ ' | 
    feedgnuplot --domain --points --stream 0.01
    

    【讨论】:

      猜你喜欢
      • 2011-08-31
      • 1970-01-01
      • 2012-08-03
      • 2010-11-28
      • 2013-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      相关资源
      最近更新 更多