Extracting values between certain range and storing it
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
TANMAYEE PATHRE
le 27 Juin 2019
Commenté : Guillaume
le 28 Juin 2019
I have a 28X12 matrix of tempo values (bpm) recording from a tapping experiment. The rows represent number of stimuli (28) and columns represent number of test subjects (12). I want to have the most correct tempo for particular musical stimuli. But I am looking for a certain range of tempo values which I have taken as 10% which means if the first stimuli has the tempo 224 bpm. The lower limit will be 201 and upper limit is 246. I would then want to extract all the tempo values within the specified range for that particular stimuli.
tempo_drums_round = round(tempo_drums); %Rounding the values
tempoModedrums = mode(tempo_drums_round,2); %Most used value for tempo for drums
%To extract all the values between certain range
for t = 1:length(tempoModedrums)
t_low(t) = tempoModedrums(t)-tempoModedrums(t)/10;
t_low = t_low';
t_high(t) = tempoModedrums(t)+tempoModedrums(t)/10;
t_high = t_high';
t_range = [t_low t_high];
end
I am stuck after this!
2 commentaires
Guillaume
le 27 Juin 2019
Note that your loop isn't needed. It's simply:
tempo_drums_round = round(tempo_drums); %Rounding the values
tempoModedrums = mode(tempo_drums_round,2); %Most used value for tempo for drums
t_low = tempoModedrums - tempoModedrums / 10;
t_high = tempoModedrums + tempoModedrums / 10;
t_range = [t_low, t_high];
which could be coded even more simply as:
tempo_drums_round = round(tempo_drums); %Rounding the values
tempoModedrums = mode(tempo_drums_round,2); %Most used value for tempo for drums
t_range = tempoModedrums + tempoModedrums ./ [-10, 10]; %subtract (1st column) and add (2nd column) tempoModedrums / 10 to tempoModedrums
Considering that in each row, you may have a different number of subjects within your band, what do you want as output? It can be a matrix, it could be a cell array.
Réponse acceptée
Guillaume
le 27 Juin 2019
Ah, well if you just want the number of people within the band then:
tempo_drums_round = round(tempo_drums); %Rounding the values
tempoModedrums = mode(tempo_drums_round,2); %Most used value for tempo for drums
t_low = tempoModedrums - tempoModedrums / 10;
t_high = tempoModedrums + tempoModedrums / 10;
countinrange = sum(tempo_drums >= t_low & tempo_druns <= t_high, 2)
2 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!