我有一個固定寬度的文件格式(原始輸入用於Fortran例程)。該文件中的幾行大致如下:Octave/Matlab - 讀取固定寬度文件
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訪問權限或時間來完成答案 – fyrepenguin