Find Consecutive numbers and print value in next collumn
4 views (last 30 days)
Show older comments
Commented: Patrick Lonergan on 14 Jul 2021
I have a table of 4 collumns with over a million rows. In collumn 4 I have a collumn that iis based on logic (when the temperature in collumn 3 exceeds a given value the entry in collumn 4 will be one and when it does not exceed it will be 0).
In collumn 5 I would like to have a count of the number of consectutive values placed in the row of the final 1.
I have used the following to get a vector of containing the consecutive counts, but I am unsure how to get them to print in collumn five at the end of each cosecutive set
f = find(diff([0,exceedlogic,0]==1));
p = f(1:2:end-1); % Start indices
y = f(2:2:end)-p; % Consecutive ones’ counts
Image Analyst on 13 Jul 2021
fprintf('Beginning to run %s.m ...\n', mfilename);
% Create sample data because none was attached to the question.
data = rand(200, 6);
data(:, 5) = data(:, 4) > 0.3;
data(:, 6) = 0
% Now we have our data and can begin.
% Measure lengths of each run of 1s.
props = regionprops(logical(data(:, 5)), 'Area', 'PixelList');
% Assign area to the very last row of 1s.
for k = 1 : length(props)
lastRow = props(k).PixelList(end, 2)
data(lastRow, 6) = props(k).Area;
fprintf('Done running %s.m.\n', mfilename);
Main code is between the ============== of course.
More Answers (1)
David Hill on 13 Jul 2021
Simple loop works
Find more on Data Type Identification in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!