在Matlab中循环多个文件

时间:2013-07-19 18:41:49

标签: matlab loops

我需要让Matlab R2013a在目录中查找包含“.txt”扩展名的所有文件,然后对这些文件执行某些数学表达式。之后,脚本必须在标有与输入文件相同名称的文件中打印出数据,除非添加了一些新单词,以便我可以区分,例如:

Input:
file1.txt
file2.txt
Output: 
processed_file1.txt
...etc

我试过让matlab加载一个目录列表并通过这种方式循环文件,但我只得到单个文件的输出而不是文件夹中的几百个。谢谢你的帮助。

1 个答案:

答案 0 :(得分:4)

不太难。只需制作一个“已处理”文件夹并将其保存在那里。不要忘记MATLAB中的内置shell。以下代码中最重要的行是前两行,然后是filename行。他们创建新文件夹(第1行),将.txt内容读入名为data的结构(第2行),然后检索文件名。请注意,如果需要在不同的循环中打开并保存文件,则可以轻松地使filename成为数组。

mkdir processed     
data = dir('*.txt');   

for i = 1:length(data)
    filename = data(i).name; 

    % read data and do your processing
    % then save with something like:

    fid = fopen(['processed\' filename],'w'); 
    fprintf(...)   
    fid = fclose(fid);
end