计算文件夹中文本文件中的行数,并使用MATLAB将总行数相加

时间:2013-04-19 12:34:13

标签: matlab text file-io count

我想阅读MATLAB中一个文件夹中的一些文本文件,计算每个文件中的行数,最后总结这些数字。如果有人指导我如何在MATLAB中做到这一点,我将感激不尽?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

Matlab真的不适合这个。底层操作系统通常要好得多,因此,请使用系统调用。

this question改述我原来的答案(从那以后我学到了一些新技巧)。

if (isunix) %# Linux, mac    
    [~, result] = system('wc -l *');    
    numLines = cellfun(@str2double, regexp(result, '([0-9]+) total', 'tokens'))

elseif (ispc) %# Windows       
    [~, result] = system('find /v /c "&*fake&*" *.*');    
    numLines = sum(str2double( regexp(result, '[0-9]+', 'match') ))

else %# Some smaller OS
    error('Unsupported operating system.');

end

请注意,除

外,这样可以正常工作
  • 如果您使用的是Linux / max并且当前目录中有一个名为total的文件:)
  • Windows版本有时会错误地将一些文件错误分配1或2行,我不知道为什么......

我很确定有一个更简洁的单行解决方案来解析linux结果字符串;当前的混乱是由于regexp(..., 'tokens')返回单元格的单元格,这对于当前的上下文来说非常不方便(说实话,我还没有找到许多上下文,其中是< / em>方便),所以这必须由cellfun解决。

但是哦,好吧,它认为它应该在大多数情况下做到这一点。