如何在峰值分析中删除相同的峰值并找到每个事件的持续时间(包含峰值)?

How to delete the same peak value in peak analysis and to find the duration of each event (which contain peak value)?

我是matlab编程的新手。其实我已经在数学网站上问过这个问题,但我仍然没有得到答案,所以也许我可以在这里得到它。 我正在尝试进行峰值分析以找到雨水流量的峰值流量。这是我的代码:

%% Peak flow analysis
% define data which are used for analysis
Date=finalCSVnew{:,1};
Flow=finalCSVnew{:,7};

figure(2);
[pks,locs]=findpeaks(Flow,Date,'MinPeakProminence',1,'MinPeakDistance',1);  
findpeaks(Flow,Date,'MinPeakProminence',1,'MinPeakDistance',1);
text(locs+.02,pks,num2str((1:numel(pks))'));
xlabel('Date and Time');
ylabel('Flow [m3/h]');
title('Find All Peak Flows');
datacursormode on

我设法绘制了峰值流量,并找到了有关 pks 和 locs 的详细信息。在这里,每个事件都应该包含一个峰值流量。所以在我的例子中(根据附图)我应该有 16 个事件。但是,事件 1 和事件 2 中有重复值,我想删除其中一个,但我对如何删除感到困惑。另外,我试图在网站上找到计算每个事件持续时间的教程,但我一无所获。我想知道如何根据我得到的峰值流量数据计算持续时间(可能以分钟为单位),并删除图中和包含重复项的 pks 数据中的峰值。有可能这样做吗?请你帮助我好吗?非常感谢您的帮助。peak flow events

对于重复值,您可以使用 unique 函数查找相同的值并将其删除。

C = unique(pks) % find any unique values and output values without repetitions

https://au.mathworks.com/help/matlab/ref/unique.html

提供有关您要衡量的持续时间的更多详细信息。你想测量峰值流量的持续时间吗?还是通向峰值的整条曲线?