Changing the name of the variables in table

8 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

Caglar
Caglar il 2 Nov 2018
Modificato: Caglar il 2 Nov 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 Commenti
Caglar
Caglar il 2 Nov 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 il 6 Nov 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'})

Accedi per commentare.

Più risposte (1)

awezmm
awezmm il 2 Nov 2018
Modificato: awezmm il 2 Nov 2018
I think you can do something like: T.Properties.VariableNames = {'newname1' 'newname2'}
  2 Commenti
Shelender Kumar
Shelender Kumar il 2 Nov 2018
Thanks but I am getting an error '146k' is not a valid variable name.
awezmm
awezmm il 2 Nov 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

Accedi per commentare.

Categorie

Scopri di più su Data Type Conversion 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