find a row number in text file for certain condition

3 vues (au cours des 30 derniers jours)
sermet OGUTCU
sermet OGUTCU le 26 Avr 2021
Commenté : Jan le 26 Avr 2021
data=[1.2;1.0;0.05;0.4;0.3;0.2;0.1;0.05;0.04;0.03;0.03;0.02;0.01;0.001;0.01;0.01;0.001 ] ;
Here, the answer to my problem is 8th row, because the 10 consecutive rows from the 8th row are smaller than 0.10. How can I write a code to determine the row number which satisfies this condition?
  2 commentaires
Jan
Jan le 26 Avr 2021
Modifié(e) : Jan le 26 Avr 2021
Why do you menation a text file?
sermet OGUTCU
sermet OGUTCU le 26 Avr 2021
The text file includes the numeric data as n (row) x 1 (column)

Connectez-vous pour commenter.

Réponse acceptée

Jan
Jan le 26 Avr 2021
data = [1.2;1.0;0.05;0.4;0.3;0.2;0.1;0.05;0.04;0.03;0.03;0.02;0.01;0.001;0.01;0.01;0.001 ] ;
[b, n, index] = RunLength(data < 0.1);
match = find(b & n >= 10, 1);
result = index(match)
result = 8
function [b, n, index] = RunLength(x)
d = [true; diff(x(:)) ~= 0]; % TRUE if values change
b = x(d); % Elements without repetitions
k = find([d.', true]); % Indices of changes
n = diff(k); % Number of repetitions
index = k(1:numel(k) - 1);
if iscolumn(x)
n = n.';
index = index.';
end
end
  1 commentaire
Jan
Jan le 26 Avr 2021
[MOVED from flags] sermet OGUTCU wrote: This solution is highly effective.
@sermet OGUTCU: We use flags here to inform the editors about inappropriate contents like rudeness.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Text Data Preparation dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by