deleting table above a specific row
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
if i have a table and it has 05 columns.
if i want that when column 3 has a value 25, then delete all the rows above it.
and similarly if column 4 has a value 30, then delete the rows in all the columns below this value.
0 Kommentare
Antworten (2)
KSSV
am 13 Feb. 2022
% Demo example
x = (1:100)' ;
y = rand(size(x)) ;
T = table(x,y) ;
% remove rows which have values greater than 0.7 values
idx = T.(2)>0.7 ;
% remove the rows
T(idx,:) = [] ;
1 Kommentar
VBBV
am 13 Feb. 2022
Zero indexing works for Logical arrays in MATLAB, but doesn't work for numeric arrays. Quite Interesting :)
Image Analyst
am 13 Feb. 2022
Try this:
col12 = (1:5)';
col34 = [1,2,25, 30, 1000]';
t = table(col12, col12, col34, col34)
% Find last row where column 3 is exactly 25
row25 = find(t{:, 3} == 25, 1, 'last')
% Delete rows above that row25
t = t(row25 : end, :)
% Find first row where column 4 is exactly 30
row30 = find(t{:, 3} == 30, 1, 'first')
% Delete rows below that row30
t = t(1 : row30, :)
0 Kommentare
Siehe auch
Kategorien
Mehr zu Tables 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!