在二维图中标记一维数组
Mark 1D-array in a 2D-plot
我在 Matlab 中有一个嘈杂的周期信号,我在 [peak loc]=findpeaks(signal)
的帮助下从中提取了峰值。然而,不切实际的异常值也在 peak
数组中。
我为 peak
设置了最小值和最大值,因此得到了一个较短的 peak
数组。现在我想将原始 peak
的这个较短的子集标记为原始 plot(loc,peak)
,但我会得到一个错误,因为 loc
保持其原始长度。
我的问题:
有没有一种方法可以让 container.map 或类似的东西适应 loc
到 peak
并保持 loc-peak 分配的一致性?
- 我怎样才能将缩短的
peak
数组绘制到原始信号图上?
非常感谢!
我想你可以用下面的代码解决你的问题:
[peak,loc] = findpeaks(signal);
max_thr = 2;
min_thr = 1e-5;
mask = peak>min_thr&peak<max_thr;
plot(loc(mask),peak(mask))
这是你想要的吗?
我在 Matlab 中有一个嘈杂的周期信号,我在 [peak loc]=findpeaks(signal)
的帮助下从中提取了峰值。然而,不切实际的异常值也在 peak
数组中。
我为 peak
设置了最小值和最大值,因此得到了一个较短的 peak
数组。现在我想将原始 peak
的这个较短的子集标记为原始 plot(loc,peak)
,但我会得到一个错误,因为 loc
保持其原始长度。
我的问题:
有没有一种方法可以让 container.map 或类似的东西适应
loc
到peak
并保持 loc-peak 分配的一致性?- 我怎样才能将缩短的
peak
数组绘制到原始信号图上?
- 我怎样才能将缩短的
非常感谢!
我想你可以用下面的代码解决你的问题:
[peak,loc] = findpeaks(signal);
max_thr = 2;
min_thr = 1e-5;
mask = peak>min_thr&peak<max_thr;
plot(loc(mask),peak(mask))
这是你想要的吗?