Remove missing from cell array

13 visualizzazioni (ultimi 30 giorni)
Gian Pietro Luca
Gian Pietro Luca il 30 Mag 2019
Commentato: Andreas Martin il 14 Lug 2020
I have used readcell to read tabular data.
How can the missing elements be removed?
6×1 cell array
{'a' }
{'b' }
{'c' }
{'d' }
{1×1 missing}
{1×1 missing}
  2 Commenti
Gian Pietro Luca
Gian Pietro Luca il 30 Mag 2019
But how? I tried the obvious rmmissing(cellarray) and it fails with:
Error using matlab.internal.math.ismissingKernel/arraySwitch (line 79)
First argument must be numeric, logical, datetime, duration, calendarDuration, string, categorical, char, cellstr, table,
or timetable.

Accedi per commentare.

Risposte (1)

madhan ravi
madhan ravi il 30 Mag 2019
yourcell(cellfun(@ischar,C))
  3 Commenti
Gian Pietro Luca
Gian Pietro Luca il 30 Mag 2019
Thanks. It is helpful and seems to work but, is it the "standard" way to deal with missing parameters? It seems a bit overbloated: A=A(cellfun(@ischar,A)). Also, if I have a mixture of numbers and strings, it might not work, right?
Andreas Martin
Andreas Martin il 14 Lug 2020
Yes, in that case it doesn't work. Try then this instead:
C( cellfun( @(c) isa(c,'missing'), C ) ) = {[]};

Accedi per commentare.

Categorie

Scopri di più su Cell Arrays in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by