Data set must contain at least 3 samples when Using findpeaks()

When the below code was used with a different set of data, it worked fine but when I use a different set, it gives the following error:
Data set must contain at least 3 samples.
There is more than enough data (over 1 million) so this shouldn't be a problem. How should I go about fixing this?
start_time = filteredTT.x(1);
end_time = filteredTT.x(end);
interval = minute(1);
idx1 = start_time;
breathingRate = [];
time = [];
while idx1 < filteredTT.x(end)
range = timerange(idx1, "minutes");
data = table2array(filteredTT(range,:));
timeperiod = (filteredTT.x(range));
[pks, loc] = findpeaks(data, timeperiod, "MinPeakDistance", seconds(3));
numOfPeaks = size(pks,1);
breathingRate(end+1) = numOfPeaks;
idx1 = idx1 + minutes(1);
end

3 Comments

hello
have you checked that your code works both for row and column oriented vectors ? depending of how you import data, you may have different data dimensions and your code may be sensitive to that.
Thank you for your comment. The number of columns are always the same. The only thing changing is the number of rows for the data that is being passed.
you would get that if there is any location in the data with fewer than 3 entries in the same minute.

Sign in to comment.

Answers (0)

Products

Release

R2022a

Asked:

R
R
on 24 May 2022

Commented:

on 24 May 2022

Community Treasure Hunt

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

Start Hunting!