我有一个包含大量数据点的文件,所有数据都格式化为XX.XXX这些数字连续排列在一起。
如何将所有数字分成单个值?
我尝试使用'%5.3d'和'%5.3f'从文件中读取,但它们都不起作用。同样,'%6s'不起作用。
示例输入:
75.91425.43937.55492.55874.43839.51519.59935.11762.33178.14914.81569.43037.90083.32590.492
70.45060.24634.07148.20638.34348.88881.90070.37655.06531.76382.54791.43659.88274.56288.827
87.28590.39641.39551.67340.39870.613
期望的输出:
75.914
25.439
37.554
92.558
etc.
我试过了:
fscanf(Fid,'%6.3f',[3 inf]);
fscanf(Fid,'%5.3f',[3 inf]);
fscanf(Fid,'%5.3f',[3 inf]);
fscanf(Fid,['%2d' char('.') '%3d'], [6 inf]);
答案 0 :(得分:2)
假设每个元素都是6个字符,您可以执行以下操作,因为fscanf不起作用。注意:我将您的样本保存到“numData.txt”
编辑:这要好得多。
fid = fopen('numData.txt','r');
numArray = textscan(fid,'%6.3f',inf);
给出
numArray =
75.9140
25.4390
37.5540
... etc