循环遍历Matlab中的文件名列表

时间:2018-04-15 14:24:25

标签: matlab for-loop filenames

可能是一个非常简单的问题 - 但我似乎无法弄明白Matlab。我想从文件列表中导入数据,并使用从原始文件名派生的名称保存生成的矩阵。有很多文件,所以我想使用for循环。

在BASH中我会写一些类似的东西:

For sample in apple orange guava jackfruit;
do
"$sample"_matrix = someimportfunction("$sample".txt);
done

我可以使用dlmread一次导入一个文件,我只是无法弄清楚如何循环使用名称,等同于$的matlab等等。

非常感谢任何建议!

2 个答案:

答案 0 :(得分:2)

我认为下面的代码段可能完全符合您的要求。 当然,您需要文件apple.txt等,其中包含数字

for sample = {'apple', 'orange', 'guava', 'jackfruit'}
    matrix.(sample{1}) = load([sample{1},'.txt']);
end

matrix = matrix

我得到以下输出:

matrix =
  scalar structure containing the fields:

    apple = 1   2   3

    orange =
       1   2
       4   5

    guava =
       1   1   1
       0   0   0

    jackfruit =  17

答案 1 :(得分:0)

我们假设您的文件位于文件夹" sfolder"。

Files = dir('sfolder');
num_files = length(Files);
for i=1:num_files
    fid = fopen(Files(i).name); %do whatever you want now
end

这将帮助您浏览特定目录中的每个文件。