MATLAB - 更快地写入文件

时间:2013-01-24 19:16:05

标签: performance file matlab

我正在执行以下代码,用一行中的所有字符的值(指定行q)过滤从一个文件中取出的四行的组,并将过滤后的行写入新文件。

fin = fopen(fname_in,'r') ;  
fout = fopen(fname_out,'w') ;  
y = 0 ;  
w = 0 ;  
fprintf(1,'Filtering') ;  
while ~feof (fin)  
  w=w+1 ;  
  if ~mod(w,50000) 
    fprintf(1,'.'); 
  end  
  t = fgets(fin) ;  
  s = fgets(fin) ;  
  p = fgets(fin) ;   
  q = fgets(fin) ;  
  if all(q(1:len) >= phred+phred_code)  
    y = y + 1 ;  
    fwrite(fout,[t s([1:len end]) p q([1:len end])]) ;  
  end  
end  

fclose(fin) ;  
fclose(fout) ;  

代码正常运行,但运行需要很长时间。

还有哪种方法可以加速代码?

感谢

1 个答案:

答案 0 :(得分:1)

通常,做更少但更大的读写操作会更快。如果文件足够小,您可以读取整个文件,处理行,然后写入整个文件。如果文件太大,您可以循环读取,处理和写入文件的块而不是单独的行。