我正在尝试读取包含数千行格式的文件:
AAAAAAAA 2013.99.2314.029 0 OFF N
哪个是制表符分隔文件。最后一栏是一个不在乎。之前的两列是可变的,所以我把它们读作字符串。我的主要问题是第二栏。这是一个分为几个部分的数字
2013.99.2314.029
是2013年,第99天,第二个2314.029。
我想使用textscan一次读取整个文件,但在我阅读它的时候以某种方式拆分了那个复杂的日期字符串。
目前我有扫描字符串:
SCAN_STR = '%s\t%f.%f\t%s\t%s\t%*s'
将日期字符串读入两个浮点数。我真正喜欢的是把它读成两个整数和一个浮点数。但是使用
SCAN_STR = '%s\t%d.%d.%f\t%s\t%s\t%*s'
将它截断到2013年和2314年并将其余部分搞砸了。我试图逃避'。'用'。'但是会出现错误。
有什么建议吗?由于文件很大,我想在扫描时执行此操作。当您开始尝试更改大型数据集的类型时,内存不足。
编辑:
我真的需要2013.99.2314.029的扫描字符串来返回两个整数和一个浮点数。
'%d.%d.%f'
不起作用。也没有使用分隔符作为'。'。我也试过了你。当它读入时,它会舍入小数。
Le叹息。
答案 0 :(得分:0)
我刚用MATLAB 2012b尝试了这个,它似乎在我的最后工作。
SCAN_STR = '%s\t%4d.%d.%f\t%d\t%s%*[^\n]'