在Matlab中循环播放多个文件

Imm*_*lxR 2 matlab loops

我需要让Matlab R2013a在目录中查找所有扩展名为'.txt'的文件,然后对这些文件进行某些数学表达式。然后,该脚本必须将文件中的数据打印出来,该文件的名称与输入文件的名称相同,只是添加了一些新单词,以便让我分辨出区别,例如:

Input:
file1.txt
file2.txt
Output: 
processed_file1.txt
...etc
Run Code Online (Sandbox Code Playgroud)

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

vox*_*ree 5

不太困难。只需创建一个“已处理”文件夹并将其保存在此处即可。不要忘记您可以随意使用MATLAB中的内置外壳。以下代码中最重要的几行是前两行,然后是该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
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一句,我建议使用“ fullfile”而不是手动路径连接。它处理操作系统特定的路径格式,并检查重复的路径分隔符。EG`fullfile('processed',filename)`。 (5认同)