【发布时间】:2017-03-16 16:56:06
【问题描述】:
我有一个固定宽度的文件格式(原始文件是 Fortran 例程的输入)。该文件的几行如下所示:
1078.0711005.481 932.978 861.159 788.103 716.076
这实际上应该如何阅读:
1078.071 1005.481 932.978 861.159 788.103 716.076
我尝试了各种方法,textscan、fgetl、fscanf 等,但是我遇到的问题是,如上所示,有时由于原始文件的固定宽度,一些数字之间没有空格。我似乎找不到直接阅读它们的方法,也无法更改原始格式。
到目前为止,我想出的最好方法是使用 fgetl 读取整行,然后将结果重新整形为 8,6 数组
A=fgetl
A=reshape(A,8,6)
生成以下结果
11
009877
703681
852186
......
049110
787507
118936
所以现在我有了上述内容,并认为我可以将该数组的行连接在一起以形成每个数字,尽管尝试 strcat、vertcat 等似乎也很困难。
所有这些似乎都需要很长的路要走,所以希望能得到一些更好的建议。
谢谢。
【问题讨论】:
-
如果列间距相同,即使它们被压在一起,您也可以执行 str2double(A(1:8)) 和 str2double(A(9:16)) 和以此类推。只要列长度不变,这可能会有所帮助。我目前没有 MATLAB 访问权限或时间来给出完整的答案