如何读取用点分隔的数字?

时间:2012-07-28 14:53:17

标签: matlab file-io

我试图阅读这样的日志文件:

14:27:30:000 1.01628432 152.35 310794
14:27:35:000 1.01628432 152.35 310794
14:27:36:000 1.01628432 152.35 310794
14:27:37:000 1.01628432 152.35 310794
14:27:38:000 1.01628432 152.35 310794
14:27:39:000 1.01628432 152.35 310794

使用此类代码:

data = textscan(fLog, '%f:%f:%f:%f %f.%f %f.%f %f');

无法完全阅读。同时,如果我使用,作为数字中的分隔符而不是.,那么这些代码一切正常:

data = textscan(fLog, '%f:%f:%f:%f %f,%f %f,%f %f');

我猜可能.是特殊的charachter os。因为我无法更改需要阅读的文件以使用,我需要调整我的matlab脚本以接受.。问题是如何做到这一点。

1 个答案:

答案 0 :(得分:3)

.是浮点数(%f)的一部分,如果您确定要单独读取每个数字,请将它们作为整数读取(%d):< / p>

'%f:%f:%f:%f %d.%d %d.%d %f'

您确定不想将字段2和3作为浮点数读取:

'%f:%f:%f:%f %f %f %f'