我正在使用 textscan 从文本文件中读取固定宽度(9 个字符)的数据。Textscan 在包含字符串的某一行失败:
' 9574865.0E+10 '
我想从中读取两个数字:
957486 5.0E+10
问题可以这样复制:
dat = textscan(' 9574865.0E+10 ','%9f %9f','Delimiter','','CollectOutput',true,'ReturnOnError',false);
返回以下错误:
Error using textscan
Mismatch between file and format string.
Trouble reading floating point number from file (row 1u, field 2u) ==> E+10
令人惊讶的是,如果我们加上一个减号,我们不会得到一个错误,而是一个错误的结果:
dat = textscan(' -9574865.0E+10 ','%9f %9f','Delimiter','','CollectOutput',true,'ReturnOnError',false);
现在 dat{1} 是:
-9574865 0
显然,我需要这两种情况才能工作。我目前的解决方法是在字段之间添加逗号并在 textscan 中使用逗号作为分隔符,但这很慢而且不是一个好的解决方案。有什么方法可以使用 textscan 或其他内置(出于性能原因)MATLAB 函数正确读取此字符串?