2012-11-05 17 views
0

我有大型格式的文本文件(200 Mb),其中包含的数据对于读取和保存很容易。格式的周期约为72行,我想有一个包含72行模板格式的其他文件。有没有办法做到这一点?使用其他文件作为输入格式字符串读取大型文本文件

理想的方式是

formatstring = fileread(templatefile) 

fileToRead = fopen(LargeFile,'r') 

while ~feof(fileToRead) 

object{i} = textscan(fileToRead,formatstring) 

i = i+1 
end 

模板文件看起来像:

CASE # %16f   DATE: %s 

AILERON ANGLE  STAB ANGLE 
%4.2f     %4.2f 

ALPHA  BETA  GAMMA 

%4.2f  %4.2f  %4.2f 
+0

等等,所以你*有一个格式文件,并且想用它来读取你的数据?或者你有数据,你想*创建格式文件? –

回答

0

如果要读取的格式文件,并变换成有效的格式字符串,使用:

% read format file 
fid = fopen('untitled.txt', 'r'); 
A = textscan(fid, '%s'); 
fclose(fid); 

% transform into proper format string 
A = A{1}(~cellfun('isempty', regexp(A{1}, '%'))) 
A = [A{:}]; 
在这种情况下

>> A 
A = 
    %16f%s%4.2f%4.2f%4.2f%4.2f%4.2f 

你可以直接在你的textscan中使用while -loop。

+0

非常感谢。 cellfun函数总是非常有用。 – user1799016

相关问题