find a row number in text file for certain condition
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Akzeptierte Antwort
Jan
am 26 Apr. 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)
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 Kommentar
Jan
am 26 Apr. 2021
@sermet OGUTCU: We use flags here to inform the editors about inappropriate contents like rudeness.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Characters and Strings finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!