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

时间:2017-10-24 16:29:01

标签: matlab matlab-figure matlab-deployment

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

%% 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

1 个答案:

答案 0 :(得分:0)

对于重复值,您可以使用for (i=1; i lte ArrayLen(yourArray); i++){ processStruct(yourArray[i],i); } 函数查找相同的值并将其删除。

unique

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

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