【问题标题】:Looping over multiple files in Matlab在 Matlab 中循环遍历多个文件
【发布时间】:2013-07-19 18:41:48
【问题描述】:

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

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

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

【问题讨论】:

  • 你能告诉我们你的代码吗?以正确方式完成的目录循环应该可以工作。

标签: matlab loops


【解决方案1】:

难度不大。只需制作一个“已处理”文件夹并将它们保存在那里。不要忘记 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

【讨论】:

  • 顺便说一句,我推荐fullfile 而不是手动路径连接。它处理操作系统特定的路径格式,以及检查重复的路径分隔符。例如fullfile('processed',filename).
猜你喜欢
  • 1970-01-01
  • 2019-07-21
  • 2019-01-03
  • 2018-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-23
  • 2012-07-25
相关资源
最近更新 更多