【问题标题】:Mark 1D-array in a 2D-plot在二维图中标记一维数组
【发布时间】:2016-12-15 00:16:05
【问题描述】:

我在 Matlab 中有一个嘈杂的周期性信号,我在 [peak loc]=findpeaks(signal) 的帮助下从中提取了峰值。然而,不切实际的异常值也在peak 数组中。 我为peak 设置了最小值和最大值,因此得到了一个更短的peak 数组。现在我想将原始peak 的这个较短的子集标记为原始plot(loc,peak),我会得到一个错误,因为loc 保持其原始长度。

我的问题:

  • 是否有一种方式类似于 container.map 或类似的方式,可以使 loc 适应 peak 并与 loc-peak 分配保持一致?

    • 如何将缩短的 peak 数组绘制到原始信号图上?

非常感谢!

【问题讨论】:

    标签: arrays matlab dictionary plot marker


    【解决方案1】:

    我认为您可以使用以下代码解决您的问题:

    [peak,loc] = findpeaks(signal);
    max_thr = 2;
    min_thr = 1e-5;    
    mask = peak>min_thr&peak<max_thr;
    plot(loc(mask),peak(mask))
    

    这是你想要的吗?

    【讨论】:

    • 哇,谢谢,不知道这个掩蔽的想法! Tesekkürler!
    • 我怎样才能进一步了解这个想法?这种技术有术语吗?
    • Rica ederim :) 实际上,在 MATLAB 中使用掩码思想是非常常见的方法。我建议您阅读stackoverflow.com/questions/32379805/…此站点以获取有关索引的更多信息。
    猜你喜欢
    • 2016-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-23
    • 2013-11-23
    • 1970-01-01
    相关资源
    最近更新 更多