find a row number in text file for certain condition

2 visualizaciones (últimos 30 días)
sermet OGUTCU
sermet OGUTCU el 26 de Abr. de 2021
Comentada: Jan el 26 de Abr. de 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 comentarios
Jan
Jan el 26 de Abr. de 2021
Editada: Jan el 26 de Abr. de 2021
Why do you menation a text file?
sermet OGUTCU
sermet OGUTCU el 26 de Abr. de 2021
The text file includes the numeric data as n (row) x 1 (column)

Iniciar sesión para comentar.

Respuesta aceptada

Jan
Jan el 26 de Abr. de 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 comentario
Jan
Jan el 26 de Abr. de 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.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Text Data Preparation en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by