deleting table above a specific row
2 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(2 个)
KSSV
2022-2-13
% 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 个评论
VBBV
2022-2-13
Zero indexing works for Logical arrays in MATLAB, but doesn't work for numeric arrays. Quite Interesting :)
Image Analyst
2022-2-13
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 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!