Matlab文件读取

Matlab文件读取,matlab,file-io,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.

我有一个文件,它有许多数据点,所有数据点的格式都像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]);

假设每个元素都是6个字符,由于fscanf不工作,您可以执行以下操作。注意:我已将您的示例保存到“numData.txt”中

编辑:这好多了

fid = fopen('numData.txt','r');
numArray = textscan(fid,'%6.3f',inf);
给予


否。fscanf返回的矩阵是“我建议用数据样本、用于阅读的代码样本编辑您的问题,确切地说,您希望得到什么,以及您当前得到什么。我对Matlab不是很好的朋友,但扩展问题会有帮助。这对我也不起作用。我很困惑为什么会有任何问题。所有的语法似乎都是正确的。@NathanTornquist我不知道为什么这样不行。我只是将你的样本粘贴到一个文本文件中,没有问题。可能数据文件中存在与示例不符的内容。在尝试上述代码时是否出现错误,或者生成的数组是否为空?此外,我会检查您的数据文件,看看是否有任何换行符,空格等,打破了模式。
numArray =

   75.9140
   25.4390
   37.5540
   ... etc