可能是一个非常简单的问题 - 但我似乎无法弄明白Matlab。我想从文件列表中导入数据,并使用从原始文件名派生的名称保存生成的矩阵。有很多文件,所以我想使用for循环。
在BASH中我会写一些类似的东西:
For sample in apple orange guava jackfruit;
do
"$sample"_matrix = someimportfunction("$sample".txt);
done
我可以使用dlmread
一次导入一个文件,我只是无法弄清楚如何循环使用名称,等同于$
的matlab等等。
非常感谢任何建议!
答案 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
这将帮助您浏览特定目录中的每个文件。