Deleting several specific columns from a table
35 views (last 30 days)
Show older comments
Darla Bonagura
on 29 Aug 2019
Commented: Alexander Carmeli
on 30 Jun 2021
I would like to delete several hundred columns from a table of data. I'm currently using the commands:
QuestionnairesData(:,4:5) = []
QuestionnairesData(:,5:6) = []
QuestionnairesData(:,6:7) = []
But this goes on for several hundred lines which would take hours to run. Does anyone know a more efficient way to do this? Thank you!
0 Comments
Accepted Answer
the cyclist
on 29 Aug 2019
Do you know all the column indices you want to delete? It's as simple as
columnIndicesToDelete = [4 5 6 7 9 12 14 15 17]; % and so on
QuestionnairesData(:,columnIndicesToDelete) = [];
And if there is some pattern to the indices, you won't necessarily have to specify every single value.
Or am I missing something? In your example, the columns deleted in the command
QuestionnairesData(:,5:6) = [];
after having done
QuestionnairesData(:,4:5) = [];
will not be the 5th and 6th column of the original array. So maybe there is some complication there?
3 Comments
Jos (10584)
on 29 Aug 2019
No it will not crash!
T = array2table(randi(100,2,100000)) ; % a table with 100000 columns!
idx = 2:99999 ;
T(:,idx) = [] % delete 99998 columns
Alexander Carmeli
on 30 Jun 2021
This line will conveniently remove every column that has all-zero elements:
t(:,~any(t{:,:})) = []
More Answers (0)
See Also
Categories
Find more on Logical 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!