【发布时间】:2021-07-09 16:33:08
【问题描述】:
我正在尝试从指定文件夹中读取 .mat 文件。我想以连续的顺序一次加载它们两个,将它们合并在一起,将我想要的列数保存为一个新的 .mat 文件,并继续对所有文件执行此操作(我最终会有很多)。
每个 .mat 文件具有相同数量的变量和列长度。它们代表一天的数据,所以 24 列是 24 小时,我希望它包含 25 小时。
这是我已经完成的我想要实现的示例,但不确定如何正确循环文件夹中的所有文件并保存新文件:
folder_dir = ('myfolder');
mat_files = dir(fullfile(folder_dir, '*.mat'));
for i = 1:(length(mat_files))
A = load(mat_files(i));
B = load(mat_files(i+1));
AB = [A,B];
var1 = [AB.var1]; % concatenate so each file is now 2 days of data (48 hours)
var2 = [AB.var2];
var1 = var1(:,(1:25)); % extract the first 25 columns (25 hours)
var2 = var2(:,(1:25));
% save them all as final .mat files with 25 time levels
save 2019_sample1.mat var1 var2
end
所以我希望能够遍历我所有的 .mat 文件,将前一个文件与下一个文件合并,提取第 25 个时间级别并保存为新的 .mat 文件。
任何关于我如何制作循环的帮助都会很棒。谢谢
【问题讨论】:
-
你在编写 for 循环的哪一部分遇到了问题
-
我不确定如何一次只读取两个 .mat 文件并将它们合并?
-
你的意思不是很清楚。您已经在显示的代码中一次读取两个 mat 文件
标签: matlab loops for-loop mat-file