【发布时间】:2018-11-11 12:41:03
【问题描述】:
我四处搜索并找到了一些解决我的问题的潜在解决方案,但无法实现代码。
基本上,我有一个包含 32 个子文件夹 的目录。 32 个子文件夹中的每一个都有 4 个文件(.mat,每个文件有 1 行和几百万列)。我感兴趣的变量称为 data(请参见下面的代码)。
我需要访问子文件夹子集中的所有 4 个 .mat 文件,并将它们附加/连接到一个大矩阵中。此外,每个子文件夹中的每组 4 个文件在结束矩阵中应彼此相邻。
此外,子文件夹的名称和其中的文件是已知的:
文件夹 = TT1、TT2、 等
文件 = TT1ch1、TT1ch2、TT1ch3、TT1ch4; TT2ch1、TT2ch2、TT2ch3、TT2ch4、等
我还需要在代码中指定实际打开和读取 4 个文件的子文件夹。并非所有内容都需要始终阅读。到目前为止,我有这个:
TTs = [1,2,3,4,5]; % List of sub-folders to use.
for i = TTs;
addpath(strcat('TT',num2str(i)));
cd (strcat('TT',num2str(i)));
for w = 1:4; %get data from the 4 files
load(strcat('TT',num2str(i),'ch', num2str(w), '.mat'));
allChs(w,:) = data(1,:); %concatenate into one matrix
end
cd ..
rmpath(strcat('TT',num2str(i)));
end
使用此代码,我可以从给定子文件夹的 4 个文件中读取数据并将其复制到新矩阵 (allChs)。然而,当我尝试添加代码以遍历所有文件夹时,我只是覆盖了我拥有的内容......
我尝试了不同的方法,但在这个阶段非常卡住。任何帮助都将受到热烈欢迎。
干杯, 爱子
【问题讨论】:
-
那里不需要
addpath和rmpath。您总是从当前文件夹读取,路径未使用。 -
谢谢克里斯。只需从代码中删除这些行,因为它们是不必要的。干杯
标签: matlab for-loop signal-processing