Filter löschen
Filter löschen

Number of peaks per interval

1 Ansicht (letzte 30 Tage)
Priscilla
Priscilla am 2 Aug. 2020
Kommentiert: Alan Stevens am 2 Aug. 2020
how can I count the number of peaks in a given time interval such that if there was no peak detected the count is 0.
This is what I have so far
[time peakcount] =
1 1
2 2
3 1
4 2
6 3
8 2
I would like to have something like this NB: row 5 and 7. thanks
[time peakcount] =
1 1
2 2
3 1
4 2
5 0
6 3
7 0
8 2

Akzeptierte Antwort

Star Strider
Star Strider am 2 Aug. 2020
Bearbeitet: Star Strider am 2 Aug. 2020
One approach:
t_pc = [ 1 1
2 2
3 1
4 2
6 3
8 2];
t_pc2 = [min(t_pc):max(t_pc); zeros(1,numel(min(t_pc):max(t_pc)))].';
t_pc2(t_pc(:,1),2) = t_pc(:,2)
producing:
t_pc2 =
1 1
2 2
3 1
4 2
5 0
6 3
7 0
8 2
A more efficient version:
t_pc2 = (min(t_pc):max(t_pc)).';
t_pc2(t_pc(:,1),2) = t_pc(:,2)
.

Weitere Antworten (1)

Alan Stevens
Alan Stevens am 2 Aug. 2020
How about:
newtime = 1:max(time);
newpeakcount(time) = peakcount;
  2 Kommentare
Priscilla
Priscilla am 2 Aug. 2020
Thanks Allan, but this returns the initial output
Alan Stevens
Alan Stevens am 2 Aug. 2020
No. It returns the counts with the zeros added, albeit transposed (but that's easily fixed);
newtime =
1 2 3 4 5 6 7 8
newpeakcount =
1 2 1 2 0 3 0 2

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by