delete columns of empty elements of a cell
8 views (last 30 days)
Show older comments
Hello! I have a cell like this:
empty_elem = [];
A = {'5','11',empty_elem,empty_elem;'99','169','188',empty_elem;'250','258','267',empty_elem};
I want to delete the column consisting of null elements and transform the cell like this:
A = {'5','11',empty_elem;'99','169','188';'250','258','267'};
I would need code that can do this also considering that:
- It may happen to have multiple null columns (and not just one).
- Null columns are always found at the end (inside the cell).
I tried this way, but it deletes columns that I don't want to be deleted:
empty_elem = [];
A = {'5','11',empty_elem,empty_elem;'99','169','188',empty_elem;'250','258','267',empty_elem};
A(:, any(cellfun(@isempty, A), 1)) = [];
0 Comments
Accepted Answer
Mayur
on 23 Jun 2023
Edited: Mayur
on 9 Jul 2023
Hi Alberto!
I understand that some extra columns are also getting deleted using the above command. You can instead use the following code snippet to achieve the desired functionality:
empty_elem = [];
A = {'5','11',empty_elem,empty_elem;'99','169','188',empty_elem;'250','258','267',empty_elem};
A(:, all(cellfun(@isempty, A), 1)) = [];
disp(A);
Using any deletes a column having at least one null value, whereas using all deletes those columns having all the values as null.
0 Comments
More Answers (0)
See Also
Categories
Find more on Operators and Elementary Operations 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!