How can I clear an entire table column without deleting the variable?

I have the following table and want to clear the variable P without deleting the variable. Is there a way how I can do that or should I just delete the variable by using removevars and add new data by 'new' variable P.
P Type Date
0,43008 'Feeder' '21.05.2018'
0,03786 'Feeder' '21.05.2018'
0,37238 'Loader' '21.05.2018'
...
(288x4 table)
Thanks in advance!

1 Comment

@s.h.m_89: what do "cleared" numeric values look like? What value/s would they have?

Sign in to comment.

 Accepted Answer

The short answer is to just overwrite the entire variable:
t.P = NaN(size(T.P))
You could also overwrite every element
t.P(:) = NaN
but there's not much advantage. In recent versions of MATLAB, you can assign missing:
t.P(:) = missing
but if you know the var is numeric, NaN is just as good. But missing works on other data types too, like categorical, datetime, ... . If you need to clear out variables of different types, using missing avoids a switch on the type.
By the way, you should consider making Type a categorical, and making Date a datetime. You may have already done that.

More Answers (1)

You can simply overwrite the values by indexing with curly braces if that is what you want
t = table(rand(6, 1), rand(6, 1), rand(6, 1))
t{:, 1} = (1:6)';

4 Comments

Thanks, not exactly what I need. I need a solution where I can empty the whole column and after that refill it by indexing with other values. To see if there are missing values I can't just overwrite the values...
Do they really have to be missing? If not, maybe you could fill the column with NaN's and check for those instead of checking for missing. Or fill with a character and check for nonnumeric, etc.
Thanks everyone for your quick responses. @Jeff I did as you recommended. Many thanks!

Sign in to comment.

Categories

Tags

Asked:

on 23 May 2018

Commented:

on 13 Jun 2018

Community Treasure Hunt

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

Start Hunting!