matlab - 如何标记 500 值以下的内容?
解决方案
使用findpeaks
. 下图和代码显示了一些示例。
% Create some data
load sunspot.dat
data = sunspot(1:200,2)*4 + 180;
% Plot the data
plot(data, 'm'); hold on; grid on;
ylim([0,1000]);
% all local maxima
[pks, locs] = findpeaks(data);
plot(locs, pks, 'ro');
% all local minima -- the trick is to invert the data:
[pks, locs] = findpeaks(-data);
plot(locs, -pks, 'bo');
% local maxima greater than 500
[pks, locs] = findpeaks(data, 'MinPeakHeight', 500);
plot(locs, pks, 'r*');
% local minima less than 200
[pks, locs] = findpeaks(-data, 'MinPeakHeight', -200);
plot(locs, -pks, 'b*');
% local maxima less than 400 -- the trick is to apply treshold to the pks
[pks, locs] = findpeaks(data);
locs(pks > 400) = []; % delete unwanted data points
pks(pks > 400) = []; % delete unwanted data points
plot(locs, pks, 'kV', 'MarkerSize', 5);
legend({
'data'
'all local maxima points'
'all local minima points'
'maxima greater than 500'
'minima less than 200'
'local maxima less than 400'
});
推荐阅读
- r - 如何垂直对齐条形图以获得具有不同 x 数量的每个条形的相同宽度
- c# - 如何将所有 nlog 文件目标指向额外的临时路径?
- node.js - Neo4jError:从事务中运行或使用不同的会话
- java - 如何从 broadCastReceiver 类中的 livedata 访问数据库?
- angular - Angular 使输出字符串在没有发射器的情况下可用
- python - 如何在请求端点中附加页码
- jenkins - 在给定的 Jenkins 工作节点上获取正在运行的构建状态
- c# - Xamarin 表单中的访问控制
- python - 如何合并拆分为两行的值而不是在 Python 中创建两个单独的值
- google-cloud-storage - Cloud Storage 文件夹级别的 Pub/Sub 推送通知