array2table won't accept variable name input

I am attempting to turn an array into a table before I output it into a file, and I am running into an error when I attempt to try and put variable names into my table.
data = randi(100,10,5);
headers = {'T','1','2','3','4'};
tabl = array2table(data,'VariableNames',headers);
Error using array2table (line 62)
'1' is not a valid variable name.
Error in TestCode (line 3)
tabl = array2table(data,'VariableNames',headers);
I don't understand why '1' is not a valid variable name. Can I not use numbers, even when they're a string? I have confirmed the class is 'char' for the actual contents of the headers cell, but it still doesn't seem to like it.

 採用された回答

Jan
Jan 2021 年 3 月 24 日

0 投票

Which Matlab version are you using? In the current version 2021a I find:
doc table
% Variable names can have any Unicode® characters,
% including spaces and non-ASCII characters.
Your code run without problems.
In former Matlab versions the variables of tables needed to be valid Matlab symbols: < 64 characters, ASCII, no spaces, initial character cannot be an underscore or digit.

1 件のコメント

Bob Thompson
Bob Thompson 2021 年 3 月 24 日
I'm using 2016b, so it has to start with a letter, and can't contain spaces.

サインインしてコメントする。

その他の回答 (1 件)

Sean de Wolski
Sean de Wolski 2021 年 3 月 24 日
編集済み: Sean de Wolski 2021 年 3 月 24 日

0 投票

Support for invalid variable names was added recently so you're probably on an older release that required >>isvarname(varname) to be true.
You can
  1. upgrade
  2. call: matlab.lang.makeValidName to turn your names valie
  3. Change the names to valid yourself "One", "Two" would be valid...

1 件のコメント

Bob Thompson
Bob Thompson 2021 年 3 月 24 日
Unfortunately, I'm not capable of upgrading.
I'm also not sure if I am capable of modifying the validity of names, and would prefer to avoid that option.
So, in the end I did end up changing the names by adding an alphabetical character at the beginning of each number.

サインインしてコメントする。

製品

リリース

R2016b

タグ

質問済み:

2021 年 3 月 24 日

コメント済み:

2021 年 3 月 24 日

Community Treasure Hunt

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

Start Hunting!

Translated by