需要在MATLAB中格式化结构的fieldname

时间:2014-07-25 12:24:51

标签: matlab struct

我的字段名称包含(。)for matlab结构

当我创建结构时,它会抛出无效的字段名称错误

例如

fieldName = 'Freq.01'

结构

s.(fieldName) = 25;

2 个答案:

答案 0 :(得分:3)

正如Yuans的评论所指出的,字段名称不得包含'。这可能是这种情况,因为字段的值可以是另一个字段。也许你想要取代'。'用' _'然后使用新的有效字段名:

fieldname = 'Freq.01';
fieldname = strrep(fieldname, '.', '_');
s.(fieldname) = 25
s.('hello').('world') = 17

Best,Nras。

答案 1 :(得分:2)

您可以使用matlab.lang.makeValidName将无效名称(例如'Freq.01')转换为有效名称。 (这仅适用于相对较新版本的MATLAB)。

在旧版本的MATLAB中,您可以使用genvarname