matlab - 在Matlab中循环多个文件

标签 matlab loops

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

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

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

最佳答案

不太难。只需创建一个“已处理”文件夹并将它们保存在那里即可。不要忘记 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

关于matlab - 在Matlab中循环多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17753284/

相关文章:

matlab - 如何更改 MATLAB 绘图图形的窗口标题?

matlab - 查找 2 个向量是否有 4 个连续相同的元素

algorithm - 将 Excel 列号转换为 Matlab 中的列名

matlab - 使用 Matlab 从数据集中删除特定的行和列

c++ - 执行后计数器for循环错误地递增

Python 遍历列表

java - 使用循环和 if 语句从方法返回时出错

matlab - 在 Matlab 中绘制多个图形

c - 我无法显示最大 PSI 值对应的区域

java - for 循环中 if 语句中的 return 语句之后会发生什么