How to remove rows in table?
Afficher commentaires plus anciens
Hello, I need to remove multiple rows in table... I have a table where the first column is imageFilename and there are paths to the images... i need to remove some rows by telling the program exact path... for example i have list of 60 paths which i want to remove from table... how to do this ? thanks for answers
5 commentaires
Stephen23
le 8 Mai 2023
"how to do this"
Probably some text comparison (e.g. MATCHES) followed by some basic MATLAB indexing.
What have you tried so far?
Adrian Kleffler
le 8 Mai 2023
Jonas
le 8 Mai 2023
try
i = length(pathsToDelete):-1:1
instead of
i = 1:length(pathsToDelete)
why?
if you remove e.g. row 3 of a table, then the original row 4 becomes row 3. your for variables the increases by one und checks the 'new' row 4, which is row number 5 in the original table
Adrian Kleffler
le 8 Mai 2023
Jonas
le 8 Mai 2023
could you provide your LabelData.mat please
Réponses (2)
Image Analyst
le 8 Mai 2023
Try this (untested):
% Nahratie tabulky LabelData
load('LabelData.mat');
% Zadanie ciest k obrazkom, ktoré chceš vymazať
pathsToDelete = {'E:\ADRIAN\BAKALARKA\DATASET\vsetko2\panasonic_fullhd_01-090-000-202109092000.jpg', 'E:\ADRIAN\BAKALARKA\DATASET\vsetko2\panasonic_fullhd_01-090-000-202109092200.jpg'};
% Vymazanie riadkov s danými cestami
numRows = height(LabelData)
rowsToDelete = false(numRows, 1);
for k = 1 : length(pathsToDelete)
thisPath = pathsToDelete{k};
% Check every row in the table for this path.
for k2 = 1 : numRows
if strcmpi(LabelData.imageFilename{k2}, thisPath)
rowsToDelete(k2) = true;
end
end
end
% Delete the rows we need to
LabelData(rowsToDelete, :) = [];
% Uloženie upravenej tabuľky
save('LabelData.mat', 'LabelData');
Peter Perkins
le 5 Juin 2023
You don't need loops to do this. Hard to verify that this does what you are asking for with no mat file.
pathsToDelete = {'E:\ADRIAN\BAKALARKA\DATASET\vsetko2\panasonic_fullhd_01-090-000-202109092000.jpg', 'E:\ADRIAN\BAKALARKA\DATASET\vsetko2\panasonic_fullhd_01-090-000-202109092200.jpg'};
idx = ismember(LabelData.imageFilename, pathsToDelete{i}));
LabelData(idx, :) = [];
Catégories
En savoir plus sur Deep Learning Toolbox dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!