Remove missing from cell array

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

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

madhan ravi
madhan ravi il 30 Mag 2019
Modificato: madhan ravi il 30 Mag 2019
Read this once again
Try the above see if it satisfies your need else show what missing data contains
since I don’t know because I’m not at the latest stand.
Use 'isempty' instead of @ischar if missing contains an empty scalar.
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?
Yes, in that case it doesn't work. Try then this instead:
C( cellfun( @(c) isa(c,'missing'), C ) ) = {[]};

Accedi per commentare.

Categorie

Richiesto:

il 30 Mag 2019

Commentato:

il 14 Lug 2020

Community Treasure Hunt

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

Start Hunting!

Translated by