Changing the name of the variables in table

1 visualización (últimos 30 días)
Shelender Kumar
Shelender Kumar el 2 de Nov. de 2018
Comentada: Peter Perkins el 6 de Nov. de 2018
Let us say I have an output file (called combined) which is an array so To write to a file, first I convert it into the table but now I do not know how to change the name of the variables
T = array2table(combined);
Now the variables names are combined1, combined2 and so on but I want to give it my own names like 150K, 140K etc. Could you help me with this
  1 comentario
Shelender Kumar
Shelender Kumar el 3 de Nov. de 2018
I did use
a=table(1,2,3,'VariableNames',{'k146','k147','k148'}
and it worked

Iniciar sesión para comentar.

Respuesta aceptada

Caglar
Caglar el 2 de Nov. de 2018
Editada: Caglar el 2 de Nov. de 2018
You can do that on initialization,
a=table(1,2,3,'VariableNames',{'One','Two','Final'})
or after creation,
a.Properties.VariableNames={'Five','Six','Seven'}
Note that, sadly, Matlab does not let you define variable names before you put at least one row of data.
b=table('VariableNames',{'Test'})
Error using table (line 307)
The VariableNames property must contain one name for each variable in the table.
  4 comentarios
Caglar
Caglar el 2 de Nov. de 2018
You can use it like _146k or k146. If you really need to keep the original variable name, you can save them in descriptions of the table.
a.Properties.VariableDescriptions={'146k','145k'}
They wont show up on variable but you can load them back whenever you need again.
Peter Perkins
Peter Perkins el 6 de Nov. de 2018
Shelender, array2table allows you to provide var names if you don't want the defaults. See the doc.
Caglar, the reason why
table('VariableNames',{'Test'})
errors is because you are providing a name but no variable. You can't name something that isn't there, and there's a difference between "has no rows" and "isn't there at all". If you want a table with no rows, one variable, and a specific name, do something like this
table(zeros(0,1),'VariableNames',{'Test'})
or in recent versions (R2018a and later, IIRC), this
table('Size',[0,1],'VariableTypes',{'double'}, ,'VariableNames',{'Test'})

Iniciar sesión para comentar.

Más respuestas (1)

awezmm
awezmm el 2 de Nov. de 2018
Editada: awezmm el 2 de Nov. de 2018
I think you can do something like: T.Properties.VariableNames = {'newname1' 'newname2'}
  2 comentarios
Shelender Kumar
Shelender Kumar el 2 de Nov. de 2018
Thanks but I am getting an error '146k' is not a valid variable name.
awezmm
awezmm el 2 de Nov. de 2018
The issue is that you cant start variable names with numbers. You can have to some sort of string at the beginning. Maybe you can do 'Resolution_146k' or give some other title so it describes it well

Iniciar sesión para comentar.

Categorías

Más información sobre Tables en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by