Matlab文件阅读

时间:2012-01-11 22:29:56

标签: matlab file-io

我有一个包含大量数据点的文件,所有数据都格式化为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]);

1 个答案:

答案 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