如何在使用数据集函数导入时阻止MATLAB自动修改.dat文件变量名?

时间:2014-07-30 18:37:58

标签: matlab variables dataset identifier naming-conventions

所以,我目前有一个MATLAB脚本可以处理数据,然后使用模板.dat文件创建大约20个.dat文件,只更改了一个列(我一直在使用{{1分别用于读取和写入文件的函数和dataset。将使用.dat文件ExperimentBuilder的程序要求标题具有以美元符号开头的名称(例如:export)。但是,当我在MATLAB中使用数据集函数导入模板文件时,我收到此警告:

$image

然后它将变量中的所有美元符号替换为Warning: Variable names were modified to make them valid MATLAB identifiers. (例如,x_),如果它允许我将其更改回$格式,那就没问题了。但每当我尝试使用x_image时,它只会再次向我发出此警告并将其还原为set,这是ExperimentBuilder无法读取的。

我知道我可以使用原始标题快速复制并粘贴每个文件,但我想知道是否有办法在实际代码中解决此问题。

谢谢!

1 个答案:

答案 0 :(得分:0)

事情是MATLAB database使用标题名称来提供对名称的访问,这就是标题名称必须是有效标识符的原因(isvarname()表明它必须以字母开头,并且仅包含有效的字母数字字符[a-zA-Z0-9_])。

最简单的解决方案是自己手动编写标题行(包括以$开头的名称),同时单独导出不带标题的数据:

export(ds, ..., 'WriteObsNames',false)

(注意dataset.export默认会覆盖文件,所以你必须先export,然后在文件的开头加上标题行。或者如果你习惯修改MATLAB自己功能,然后转到edit dataset.export并将fopen模式从覆盖'wt'更改为追加'at'模式。)