how to substitute, in a table, variable names with the values of a vector

1 view (last 30 days)
i have a table of 6 colums U and each colums have its title (Nation, valueA, valueB, valueC, valueD, valueE). I want to substitute the last 5 colums names with the numbers contained in the vector X.
X = [1 2 3 4 5 ]
U is 20x6

Answers (1)

Sajid Afaque
Sajid Afaque on 2 Apr 2021
for num = 2:5
table_name.Properties.VariableNames(num) = {'New substitute name here in this case X(num-1)'};
end
  2 Comments
Francesco Grechi
Francesco Grechi on 2 Apr 2021
i think that could be a good idea however if i put:
table_name.Properties.VariableNames(num) = {'X(num-1)'};
i got the following error (because matlab doesn't accept the ''):-->
'X(num-1)' is not a valid table variable name. See the documentation for isvarname or matlab.lang.makeValidName for more information.
Steven Lord
Steven Lord on 2 Apr 2021
The ability to specify table variable names that are not valid MATLAB identifiers was introduced in release R2019b. Prior to that all table variable names had to be valid MATLAB identifiers (as per the isvarname function.)
T = array2table(magic(4))
T = 4×4 table
Var1 Var2 Var3 Var4 ____ ____ ____ ____ 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
newVariableNames = {'aardvark', 'baboon', 'camel', 'dog'};
T.Properties.VariableNames = newVariableNames
T = 4×4 table
aardvark baboon camel dog ________ ______ _____ ___ 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!