array2table won't accept variable name input

26 ビュー (過去 30 日間)
Bob Thompson
Bob Thompson 2021 年 3 月 24 日
コメント済み: Bob Thompson 2021 年 3 月 24 日
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 日
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 日
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.

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

カテゴリ

Help Center および File ExchangeTables についてさらに検索

タグ

製品


リリース

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by