A compact way to remove empty rows in a cell array matrix ?
17 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
A compact way to remove empty rows in a cell array matrix, as the following one?
>> a
a =
8×2 cell array
{'22-Jul-2021 17:00:00'} {[ 49]}
{0×0 double } {0×0 double}
{0×0 double } {0×0 double}
{0×0 double } {0×0 double}
{0×0 double } {0×0 double}
{'27-Jul-2021 20:00:00'} {[ 123]}
{'28-Jul-2021 06:00:00'} {[ 21]}
{'29-Jul-2021 13:00:00'} {[ 66]}
I tried this solution, but is there any more compact way ?
i = cellfun(@isempty,a);
a( any(i,2), : ) = []
a =
4×2 cell array
{'22-Jul-2021 17:00:00'} {[ 49]}
{'27-Jul-2021 20:00:00'} {[123]}
{'28-Jul-2021 06:00:00'} {[ 21]}
{'29-Jul-2021 13:00:00'} {[ 66]}
4 commentaires
Jan
le 11 Août 2022
As long, as the cell does not contain strings (char vectors are okay), cellfun('isempty', a) is faster than using @isempty.
Réponse acceptée
Matt J
le 11 Août 2022
a = {
'22-Jul-2021 17:00:00', 49
'', []
'', []
'', []
'', []
'27-Jul-2021 20:00:00', 123
'28-Jul-2021 06:00:00', 21
'29-Jul-2021 13:00:00', 66 }
a= table2cell(rmmissing(cell2table(a)))
3 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Characters and Strings dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!