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



我是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数据。有可能做到吗?你能帮帮我吗?非常感谢您的帮助。峰值流量事件

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

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

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

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

最新更新