Matlab' VariableNames'不接受数字和数字的混合非数字条目

时间:2017-01-23 22:57:00

标签: matlab properties printf eval variable-names

假设我们有一个1x3表A=table(1,2,3);

其标题名称应包含数字和非数字的混合:

A.Properties.VariableNames={'from 1st-5th' 'from 6th-10th' ... 'from 11th-15th'};

并生成以下错误:

from 1st-5th' is not a valid variable name.

我尝试使用sprintf函数来解决此错误,但formatSpec参数令人困惑。此外,我阅读了eval,并想知道它是否对我的背景有帮助。

genvarname使用的结果:

enter image description here

1 个答案:

答案 0 :(得分:3)

由于您的错误非常明确,因此您为变量名称提供的字符串为not valid variable names when they have to be

  

变量名,指定为非空且不同的字符向量的单元格数组。变量名称必须是有效的MATLAB®变量名称

您可以使用内置genvarname将字符串转换为valid variable names

A.Properties.VariableNames = genvarname({'from 1st-5th' 'from 6th-10th' 'from 11th-15th'});

或者,提出自己的变量名称,这些变量名称是有效的变量名称(没有空格或连字符)。

names = {'from 1st-5th' 'from 6th-10th' 'from 11th-15th'};
A.Properties.VariableNames = regexprep(names, '[ \-]', '_');