【问题标题】:Is there any function for getpts() of MATLAB in Octave?Octave中MATLAB的getpts()有什么功能吗?
【发布时间】:2020-06-25 04:38:16
【问题描述】:

我加载一个数据文件并以八度音阶绘制它。但在情节中,我想在情节上标记点的周期性出现。我使用 ginput() 函数进行标记。但是我看到的问题是,如果我标记了一个不应该标记的不同点,然后立即意识到我犯了错误,现在我想删除我最后一个标记的点,然后标记正确的点。我做不到。我发现有 MATLAB 函数 getpts() 可以执行相同的操作,但不存在八度版本的 getpts()。谁能帮帮我? 例子: 我要标记的序列是 1,2,3,4,5,6,7,8,9,10。 但不小心我标记了 1,2,3,5 并意识到我做错了然后按键盘上的删除按钮删除 5 然后我标记 4 然后 5。

【问题讨论】:

    标签: matlab gnuplot octave ginput


    【解决方案1】:

    虽然 getpts 本身并没有实现,但生成一个通过 ginput 逐个获取输入并审查它们以获得所需行为的小函数相当容易。例如

    X = []; Y = [];
    while true
      [x, y, b] = ginput(1);
      if     b == 8    ,   X(end)=[];    Y(end)=[];    % backspace key pressed
      elseif isempty(b),   break;                      % enter key pressed
      else             ,   X(end+1)=x;   Y(end+1)=y;   % any other key
      end
      disp([X;Y]);   fprintf('\n');   fflush(1);   % Optional terminal output
    end
    

    这是一种非常灵活的方法,允许您根据需要修改和添加功能(例如,根据按下的特定键添加不同的标记、随手绘制等)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-16
      • 1970-01-01
      • 2013-05-17
      • 2014-02-21
      • 1970-01-01
      • 2013-11-23
      • 2014-05-18
      • 1970-01-01
      相关资源
      最近更新 更多